jquery を使用して、ページを更新せずに main.php ファイルの div コンテンツを変更していますが、ここでの問題は、読み込まれた新しい div にフォームが含まれており、フォーム アクションでフォームを同じページに送信することです。 (div) ですが、必要のない main.php にリダイレクトされます。同じdivで同じページにとどまるために、アクションにどのような変更を加える必要がありますか。
これは、div を動的に変更するために使用するコードです。
main.php:
<li id="nav-home"><a class="button" href="main.php">Home</a></li>
<li id="nav-page1"><a class="button" href="page1.php">Page1</a></li>
<li id="nav-page2"><a class="button" href="page2.php">Page2</a></li>
<li id="nav-page3"><a class="button" href="page3.php">Page3</a></li>
<script>
$(function(){
$('.button').on('click', function(e){
e.preventDefault();
$('#content').load($(this).attr('href'));
});
})
</script>
例: main.php の Page1 をクリックすると、div コンテンツが page1 に置き換えられます。ここで、page1 にはフォームがあり、フォームを送信すると、同じページに留まりたいと思います。
これは、page1 のフォームを処理するコードです。
<form name="form" id="form" method="POST" action=""> //my form elements </form>
<script type="text/javascript">
$(document).ready(function(){
$("#form").validate({
debug: false,
rules: {
//rules
},
messages: {
//messages
},
submitHandler: function(form) {
// do other stuff for a valid form
$.post('scripts/formhandler.php', $("#form").serialize(), function(data) {
$('#results').html(data);
});
}
});
});
</script>