Ich versuche, den Wert eines ausgeblendeten Felds bei der Übergabe durch JavaScript zu ändern. Auf meiner Seite befinden sich zwei Schaltflächen, eine für die Rückkehr zur Homepage (index.php
) und eine weitere für die Rückkehr zur ersten Seite für die Dateneingabe (addData.php
). Ich versuche ein verstecktes Feld mit der ID "goHome"
zu verwenden, um die Routen zu steuern. Meine Codes sind wie folgt aus:Erzwingen einer Änderung im Wert des ausgeblendeten Felds vor dem Senden eines Formulars
HTML (Form nur)
<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;
}
Vor diesem ich viele andere Versionen versucht haben und ich refered auf diese wenigen Fragen:
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]
Aber keine der Methoden für mich gearbeitet haben. Für praktische Zwecke gibt es einen Workaround dafür, aber ich möchte wissen, ob ich diese beiden Buttons behalten möchte, wie soll mein Code geändert werden, damit der Wert "goHome"
geändert werden kann, bevor das Formular abgeschickt wird? Nach vielen Versuchen bekomme ich immer noch $_POST["goHome"] = ""
.
Warum wird das Formular auch gesendet, bevor der Wert tatsächlich geändert wird, wenn der Code davor platziert wird?
Danke!
BTW, keine jQuery bitte.
Da Sie das Formular senden, kann _server_ feststellen, welche der beiden Schaltflächen verwendet wurde, indem Sie versuchen, den Parameter 'submitBtnF' zu erhalten, und wenn nicht, versuchen Sie den Wert von' submitBtnR' zu erhalten. Nun kann der Server die Formulardaten verarbeiten/speichern und dann [redirect] (https://wikipedia.org/wiki/Post/Redirect/Get) nach Home umleiten, wenn 'submitBtnF' verwendet wurde, um das Formular zu senden, oder umData.php hinzuzufügen erneut, wenn 'submitBtnR' verwendet wurde. –