Ich versuche, JavaScript-Variablen in PHP -Code als PHP -Variablen einzuschließen, habe aber Probleme damit. Wenn Sie auf eine Schaltfläche klicken, wird folgende Funktion aufgerufen:
<script type="text/javascript">
function addTraining(leve, name, date)
{
var level_var = document.getElementById(leve);
var training_name_var = document.getElementById(name);
var training_date_var = document.getElementById(date);
<?php
$result = "INSERT INTO training(level, school_name, training_date) VALUES('level_var', 'training_name_var', 'training_date_var')" or die("Query not possible.");
?>
</script>
Ist es möglich?
PHP wird serverseitig ausgeführt. JavaScript wird clientseitig im Browser des Benutzers ausgeführt, der die Seite anfordert. Zum Zeitpunkt der Ausführung von JavaScript gibt es keinerlei Zugriff auf PHP auf dem Server. Bitte lesen Sie diesen Artikel mit Details zur clientseitigen vs. serverseitigen Codierung .
Was passiert, kurz gesagt, ist dies:
In Ihrem Fall schreibt PHP den JS-Code in die Seite, sodass er ausgeführt werden kann, wenn die Seite in Ihrem Browser gerendert wird. Zu diesem Zeitpunkt ist der Teil PHP in Ihrem JS-Snippet nicht mehr vorhanden. Es wurde bereits auf dem Server ausgeführt. Es hat eine Variable $result
erstellt, die eine SQL-Abfragezeichenfolge enthält. Sie haben es nicht verwendet, also ist die Seite verschwunden, wenn die Seite an Ihren Browser zurückgesendet wird. Schauen Sie sich den Quellcode an, wenn die Seite in Ihrem Browser dargestellt wird. Sie werden sehen, dass sich an der Stelle, an der Sie den Code PHP einfügen, nichts befindet.
Die einzige Möglichkeit, das zu tun, was Sie suchen, ist entweder:
mit den Werten, die Sie in die Datenbank einfügen möchten.
<script type="text/javascript">
var jvalue = 'this is javascript value';
<?php $abc = "<script>document.write(jvalue)</script>"?>
</script>
<?php echo 'php_'.$abc;?>
Sie scheinen verwirrenden Code auf Client- und Serverseite zu sein. Wenn Sie auf die Schaltfläche klicken, müssen Sie die Variablen an den Server senden (posten, abrufen), auf dem der PHP ausgeführt werden kann. Sie können entweder die Seite absenden oder einen Ajax-Aufruf verwenden, um nur die Daten zu übermitteln
PHP läuft auf dem Server. Es gibt (normalerweise) etwas Text aus. Diese wird dann vom Client analysiert.
Während und nach der Analyse auf dem Client wird JavaScript ausgeführt. Zu diesem Zeitpunkt ist es für das Skript PHP zu spät, etwas zu tun.
Wenn Sie etwas an PHP zurückgeben möchten, müssen Sie eine neue HTTP-Anforderung erstellen und die Daten darin aufnehmen (entweder in der Abfragezeichenfolge (GET-Daten) oder im Nachrichtentext (POST-Daten)).
Sie können dies durch:
FormElement.submit()
-Methode)Für welche Option Sie sich auch entscheiden, die PHP ist im Wesentlichen die gleiche. Lesen Sie von $_GET
oder $_POST
, führen Sie den Datenbankcode aus und geben Sie dem Client einige Daten zurück.
Ich hatte vor einigen Wochen das gleiche Problem wie deins. Ich habe jedoch eine brillante Lösung für den Austausch von Variablen zwischen PHP und JavaScript entwickelt. Es hat gut für mich funktioniert:
Erstellen Sie ein verstecktes Formular auf einer HTML-Seite
Erstellen Sie ein Textfeld oder einen Textbereich in diesem ausgeblendeten Formular
Nachdem Sie Ihren gesamten Code in das Skript geschrieben haben, speichern Sie den endgültigen Wert Ihrer Variablen in diesem Textfeld
Verwenden Sie die Zeile $ _REQUEST ['textbox name'] in Ihrer PHP, um Zugriff auf den Wert Ihrer JavaScript-Variablen zu erhalten.
Ich hoffe, dieser Trick funktioniert für Sie.
Sie können machen, was Sie wollen, aber nicht so. Sie müssen eine AJAX - Anforderung von JavaScript zurück an den Server senden, wo ein separates PHP - Skript die Datenbankoperation ausführen kann.
Sie können alle Werte wie folgt annehmen:
$abc = "<script>document.getElementByID('yourid').value</script>";