Ich möchte JavaScript-Variablen mithilfe einer versteckten Eingabe in einem Formular an PHP übergeben.
Aber ich kann den Wert von $_POST['hidden1']
in nicht bekommen $salarieid
. Stimmt irgendetwas nicht?
Hier ist der Code:
<script type="text/javascript">
// View what the user has chosen
function func_load3(name) {
var oForm = document.forms["myform"];
var oSelectBox = oForm.select3;
var iChoice = oSelectBox.selectedIndex;
//alert("You have chosen: " + oSelectBox.options[iChoice].text);
//document.write(oSelectBox.options[iChoice].text);
var sa = oSelectBox.options[iChoice].text;
document.getElementById("hidden1").value = sa;
}
</script>
<form name="myform" action="<?php echo $_SERVER['$PHP_SELF']; ?>" method="POST">
<input type="hidden" name="hidden1" id="hidden1" />
</form>
<?php
$salarieid = $_POST['hidden1'];
$query = "select * from salarie where salarieid = ".$salarieid;
echo $query;
$result = mysql_query($query);
?>
<table>
Code for displaying the query result.
</table>
php
javascript
variables
SONNE Jiangong
quelle
quelle
Antworten:
Sie können keine Variablenwerte vom JavaScript-Code der aktuellen Seite an den PHP-Code der aktuellen Seite übergeben ... PHP-Code wird auf der Serverseite ausgeführt und weiß nichts darüber, was auf der Clientseite vor sich geht.
Sie müssen Variablen aus dem HTML-Formular mithilfe eines anderen Mechanismus an PHP-Code übergeben, z. B. indem Sie das Formular mit den Methoden GET oder POST senden.
quelle
mysql_
Funktionen verwendet; Es wäre nicht das Ziel, diese Frage mit einem vollständigen Umschreiben zu beantworten.Speichern Sie es einfach in einem Cookie:
Und dann lesen Sie es mit PHP:
Es ist keine schöne Lösung, aber es funktioniert.
quelle
Es gibt verschiedene Möglichkeiten, Variablen von JavaScript an PHP zu übergeben (natürlich nicht die aktuelle Seite).
Du könntest:
Ich bin mir sicher, dass dies dazu gebracht werden könnte, schicker auszusehen und alle Variablen und so weiter zu durchlaufen - aber ich habe es einfach gehalten, um es den Anfängern leichter zu machen, es zu verstehen.
quelle
Hier ist das Arbeitsbeispiel: Holen Sie sich den Wert der Javascript-Variablen auf derselben Seite in PHP.
quelle
echo "<script>document.writeln(p1);</script>";
verwendet die Javascript-Variablep1
in Javascript , nicht in PHP.document.writeln
ist eine Javascript- Funktion, die Sie im Browser ausführen, während der Browser die HTML-Seite erstellt.PHP wird auf dem Server ausgeführt, bevor die Seite an den Benutzer gesendet wird. JavaScript wird nach dem Empfang auf dem Computer des Benutzers ausgeführt, sodass das PHP-Skript bereits ausgeführt wurde.
Wenn Sie einen JavaScript-Wert an ein PHP-Skript übergeben möchten, müssen Sie eine XMLHttpRequest ausführen, um die Daten an den Server zurückzusenden.
Hier ist eine vorherige Frage, der Sie folgen können, um weitere Informationen zu erhalten: Ajax Tutorial
Wenn Sie nur einen Formularwert an den Server übergeben müssen, können Sie auch einen normalen Formularbeitrag ausführen, der dasselbe tut, aber die gesamte Seite muss aktualisiert werden.
Wenn Sie auf Senden klicken, wird die Seite gesendet und die übermittelten Daten ausgedruckt.
quelle
Ich habe versucht, dies selbst herauszufinden, und dann festgestellt, dass das Problem darin besteht, dass dies eine Art Rückwärtssicht auf die Situation ist. Anstatt zu versuchen, Dinge von JavaScript an PHP zu übergeben, ist es in den meisten Fällen vielleicht am besten, umgekehrt vorzugehen. PHP-Code wird auf dem Server ausgeführt und erstellt den HTML-Code (und möglicherweise auch das Java-Skript). Dann lädt der Browser die Seite und führt das HTML- und Java-Skript aus.
Es scheint sinnvoll, solche Situationen anzugehen, indem Sie das PHP verwenden, um das gewünschte JavaScript und das gewünschte HTML zu erstellen, und dann das JavaScript auf der Seite verwenden, um das zu tun, was PHP nicht kann. Dies scheint Ihnen die Vorteile von PHP und JavaScript auf relativ einfache und unkomplizierte Weise zu bieten.
Eine Sache, die ich getan habe, um den Eindruck zu erwecken, dass Dinge von Ihrer Seite im laufenden Betrieb an PHP übergeben werden, ist die Verwendung des HTML-Image-Tags, um PHP-Code aufzurufen. Etwas wie das:
Der PHP-Code in pic.php würde tatsächlich HTML-Code erstellen, bevor Ihre Webseite überhaupt geladen wurde, aber dieser HTML-Code wird grundsätzlich im laufenden Betrieb aufgerufen. Der PHP-Code hier kann verwendet werden, um ein Bild auf Ihrer Seite zu erstellen, kann aber auch beliebige Befehle enthalten. Vielleicht ändert es den Inhalt einiger Dateien auf Ihrem Server usw. Der Vorteil davon ist, dass der PHP-Code von HTML ausgeführt werden kann und ich nehme JavaScript an, aber der Nachteil ist, dass die einzige Ausgabe, die es auf Ihre Seite setzen kann, eine ist Bild. Sie haben auch die Möglichkeit, Variablen über Parameter in der URL an den PHP-Code zu übergeben. Seitenzähler verwenden diese Technik in vielen Fällen.
quelle
Mit den im Code angezeigten Cookies können wir auch auf denselben / unterschiedlichen Seiten problemlos Werte übergeben (in meinem Fall verwende ich sie mit Facebook-Integration) -
Und ich habe darauf zugegriffen (in jeder Datei) mit -
quelle
So habe ich es gemacht (ich musste eine lokale Zeitzone in PHP einfügen:
quelle
Wird Ihre Funktion aufgerufen, die den versteckten Formularwert festlegt? Es ist nicht in diesem Beispiel. Sie sollten kein Problem damit haben, einen versteckten Wert zu ändern, bevor Sie das Formular an den Server zurücksenden.
quelle
Ihr Code hat ein paar Probleme.
Es ist möglich, eine JavaScript-Variable in einer versteckten Variablen in einem Formular festzulegen, diese dann zu senden und den Wert in PHP zurückzulesen. Hier ist ein einfaches Beispiel, das dies zeigt:
quelle
Wenn Ihre Seite zum ersten Mal geladen wird, führen Sie den PHP-Code zum ersten Mal aus und legen Sie das vollständige Layout Ihrer Webseite fest. Nach dem Seitenlayout wurde das Laden von JavaScript festgelegt. Jetzt interagiert JavaScript direkt mit DOM und kann das Layout bearbeiten, PHP kann die Seite jedoch nicht aktualisieren. Es gibt nur eine Möglichkeit, Ihre Seite zu aktualisieren und die Parameter in der Seiten-URL zu übergeben, damit Sie die Daten über PHP abrufen können. Daher verwenden wir AJAX, um Javascript mit PHP zu interagieren, ohne die Seite neu zu laden. AJAX kann auch als API verwendet werden. eine weitere Sache, wenn Sie die Variable bereits in PHP deklariert haben. Vor dem Laden der Seite können Sie sie mit Ihrem Javascript-Beispiel verwenden.
Der obige Code ist korrekt und wird funktionieren. Aber der folgende Code ist völlig falsch und wird niemals funktionieren.
Übergeben Sie den Wert von JavaScript über AJAX an PHP
Dies ist der sicherste Weg, dies zu tun. weil HTML-Inhalte über Entwicklertools bearbeitet werden können und der Benutzer die Daten bearbeiten kann. Daher ist es besser, AJAX zu verwenden, wenn Sie Sicherheit für diese Variable wünschen. Wenn Sie ein Neuling bei AJAX sind, lernen Sie bitte AJAX, es ist sehr einfach.
einfaches AJAX-Beispiel
Andernfalls können Sie versteckte HTML-Eingaben in Ihrem Formular erstellen. mögen
Übergeben Sie dann über jQuery oder JavaScript den Wert an das ausgeblendete Feld. mögen
Wenn Sie jetzt das Formular senden, können Sie den Wert in PHP erhalten.
quelle
Möglicherweise können Sie die Methode jquery serialize () verwenden, damit alles auf einmal ausgeführt wird.
// Auf diese Weise können Sie den versteckten Wert auch auf der Serverseite erhalten.
quelle
Diese offensichtliche Lösung wurde zuvor nicht erwähnt. Sie können auch Cookies verwenden, um Daten vom Browser zurück an den Server zu übertragen.
Setzen Sie einfach ein Cookie mit den Daten, die Sie mit Javascript im Browser an PHP übergeben möchten.
Dann lesen Sie einfach dieses Cookie auf der PHP-Seite.
quelle
Wir können JavaScript-Variablenwerte nicht direkt an den PHP-Code übergeben ... PHP-Code wird auf der Serverseite ausgeführt und weiß nichts darüber, was auf der Clientseite vor sich geht.
Daher ist es besser, AJAX zu verwenden, um den JavaScript-Wert in den PHP-Code zu analysieren.
Oder alternativ können wir dies mit Hilfe von COOKIES in unserem Code tun.
Danke & Prost.
quelle