これを使用してonclick='document.forms['form_name'].submit(); return false;'
いhref=results.php?page_no=1
ますが、動的リンクがあり、これを機能させるために使用する必要がある例が示されていますhref="#"
が、フォームを送信してに移動する方法はありpage2
ますか? チェックボックスの値をセッションに保存したいので
4 に答える
class を href (class="pagination") に追加し、id (id="form") をフォームに追加します。次に、このようなものに Jquery フレームワークを使用できます。
$(".pagination").click(function(){
// get page id, set form action with params
$("#formId").submit();
return false;
});
あなたは悪いデザインをしています。
フォームのクリックで複数の競合するアクションを実行して、それが機能することを期待することはできません。
リンクをクリックして別のページをロードできるようにするか、セッション変数を設定するだけの場合 (ただし、これをクエリ文字列パラメーターまたは Cookie で設定する方がはるかに優れています)、Ajax リクエストを使用できます。それを非同期に送信します。
ここでは、テストのために page2 を Google に置き換えました
<a href="#" onclick="document.forms['test'].submit(); return false;">Submit</a>
<form method="get" action="https://www.google.com/search?q=test" name="test">
<input name="Checkbox1" type="checkbox" />
</form>
編集:
<a href="page2.php?page=2" onclick="document.test.action =encodeURIComponent(this.getAttribute('href')); document.forms['test'].submit(); return false;">Submit</a>
<form method="get" action="" name="test">
<input name="Checkbox1" type="checkbox" />
</form>
encodeURIComponent(this.getAttribute('href') がないと、パラメーターが失われます。
いくつかのオプション:
1) jQuery AJAX を使用し、フォーム データをシリアル化してポストし、onSuccess コールバックでリダイレクト (location.href) します。このようなもの:
$.post("submitform.php",
$("form").serialize(),
function(data){location.href='results.php?page_no=2';}
);
2) フォーム タグで「ターゲット」を使用して、名前付きの非表示の iFrame にフォームを投稿します。これが本当にベスト エフォート型の記録である場合は、ページが読み込まれるのを待つ必要はありません。要求は十分であり、次のページに進むことができます。このようなもの:
<iframe="targetname" style="display:none;" />
<form name="myform" target="targetname" method="post" action="submitform.php">
....
</form>
<a href="page2.php" onClick="document.forms['myform'].submit(); return true;">
Click Here
</a>