投稿時に非表示フィールドの値をJavaScriptで変更しようとしています。私のページには2つのボタンがあり、1つはホームページ(index.php
)に戻り、もう1つはデータ入力用の最初のページ(addData.php
)に戻るためのボタンです。私はIDが"goHome"
の隠しフィールドを使用してルーティングを制御しようとしています。私のコードは、このようなものです:フォームを送信する前に非表示フィールドの値を強制的に変更する
:
HTML(フォームのみ)私は他の多くのバージョンを試してみました、私はこれらのいくつかの質問に参照さ、この前
<form name = "addDataReal" id = "addDataReal" method = "POST" action = "addDataProc.php" onsubmit="return checkNSub()">
<!-- Other items -->
<input type = "submit" name = "submitBtnF" id = "submitBtnF" class="shortText" style = "width: 120px;" value = "Submit + Home" onclick = "return getGoValue(true)"/>
<input type = "submit" name = "submitBtnR" id = "submitBtnT" class="shortText" style = "width: 120px;" value = "Submit + Next" onclick = "return getGoValue(false)"/>
<input type = "hidden" name = "goHome" id = "goHome" value = "" />
</div>
</form>
Javascriptを
function checkNSub() {
//form validation functions
//OK then return true
//Not then return false
}
function getGoValue(goHome) {
if (goHome) {
document.getElementById("goHome").value = "true";
} else {
document.getElementById("goHome").value = "false";
}
return true;
}
Set form hidden value on submit
Setting a form variable value before submitting
How to change the value of hidden input field before submitting [SOLVED]
しかし、方法のどれも私のために働いていませんでした。
実用的な解決策がありますが、私はこれらの2つのボタンを保持したいのですが、"goHome"
の値を変更してフォームを送信する前にどうすればよいですか?多くの試みの後で私はまだ$_POST["goHome"] = ""
を得ています。
また、前にコードを配置したときに値が実際に変更される前にフォームが送信されるのはなぜですか?
ありがとうございます!
Btw、jQueryを使用しないでください。
フォームを送信しているので、_server_は、パラメータ 'submitBtnF'を取得することによって2つのボタンのどちらが使用されたかを知ることができ、そうでなければ' submitBtnR'の値を取得しようとします。フォームを送信するためにsubmitBtnFが使用された場合、サーバーはフォームデータを処理/保存してから、[redirect](https://wikipedia.org/wiki/Post/Redirect/Get)をホームに送ることができます。addData.php再びsubmitBtnRが使用された場合 –