138701
28.10.2019
4244
10
0
Zusammenarbeit von JS und PHP
Hallo zusammen,
Wie kann ich das machen:
Oder das:
Und das ohne POST und GET?
Wie kann ich das machen:
<button onclick="<?php $button_clicked = true; ?>">Button<button>
Oder das:
<script>
if (var == true) {
<?php echo Test; ?>
}
</script>
Und das ohne POST und GET?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 509535
Url: https://administrator.de/contentid/509535
Ausgedruckt am: 24.11.2024 um 17:11 Uhr
10 Kommentare
Neuester Kommentar
Zitat von @138701:
Hallo zusammen,
Wie kann ich das machen:
Garnicht auf diese Art. Eventuell machst du es über Cookies, du kannst keine Variablen zwischen PHP und JS teilen. Das sind doch komplett verschiedene Sprachen! Du kannst das nur mit "echo" machen...Hallo zusammen,
Wie kann ich das machen:
<button onclick="<?php $button_clicked = true; ?>">Button<button>
Oder das:
Volkommener Unsinn, du kannst doch nicht PHP und JS auf diese Art mischen. Der Compiler geht dqvonuaus, dass der Code plain JS ist und wird dir natürlich Fehler geben!<script>
> if (var == true) {
> <?php echo Test; ?>
> }
> </script>
Und das ohne POST und GET?
Was?Ich denke, du solltest dir einen komplett neuen Ansatz überlegen. So wird das nix.
Servus @138701,
PHP wird serverseitig interpretiert, bevor die Seite an den Enduser ausgeliefert wird.
JS wird auf dem Gerät des Endusers interpretiert und ausgeführt.
Deine Beispiele funtkionieren so also nicht.
Besonders dein 2tes Beispiel funktioniert nicht, da dieses so beim Client ankommt:
VORSICHT:
Nutzt du stattdessen einen erlaubten Variablennamen:
Was du allerdings machen kannst, ist, per Ajax PHP-Inhalte nachzuladen und in deine Seite einzubinden.
Beispiele wie das funktioniert, solltest du online genug finden, wenn du nach PHP und Ajax suchst. Zum Beispiel hier: w3schools: PHP - AJAX and PHP
Schönen Gruß,
@Snowman25
PHP wird serverseitig interpretiert, bevor die Seite an den Enduser ausgeliefert wird.
JS wird auf dem Gerät des Endusers interpretiert und ausgeführt.
Deine Beispiele funtkionieren so also nicht.
Besonders dein 2tes Beispiel funktioniert nicht, da dieses so beim Client ankommt:
<script>
if (var == true) {
Test
}
</script>
var
ist ein reserviertes keyword in JS und kann nicht als Variablenname verwendet werden!Nutzt du stattdessen einen erlaubten Variablennamen:
ReferenceError: Test is not defined
Was du allerdings machen kannst, ist, per Ajax PHP-Inhalte nachzuladen und in deine Seite einzubinden.
Beispiele wie das funktioniert, solltest du online genug finden, wenn du nach PHP und Ajax suchst. Zum Beispiel hier: w3schools: PHP - AJAX and PHP
Schönen Gruß,
@Snowman25
Hallo,
das geht nicht mit PHP wie schon geschrieben mit JS
https://www.w3schools.com/jquery/jquery_dom_set.asp
das geht nicht mit PHP wie schon geschrieben mit JS
https://www.w3schools.com/jquery/jquery_dom_set.asp
Hallo Ileies
Und das ohne POST und GET?
Wie Snowman25 ja schon so schön beschrieben hat, werden diese beiden Sprachen an unterschiedlichen Orten interpretiert. Darüber musst du dir im klaren sein und dir einen passende "Tacktick" überlegen.
Und noch was ! Du erwartest hier einen Art Interaktion zwischen dem "Interface/Webseite/HTML" und dem Backend/Server/PHP. Das ist so direkt nicht möglich. Wenn du im Webbrowser einen Webseite aufrufst, dann sucht der Webserver nach der passenden "Datei" und sendet sie zurück. Request und Response. Wenn es sich bei der Datei um eine PHP-Datei handelt wird diese erst noch durch den PHP-Interpreter geschickt der das ganze PHP-Gedöns abarbeitet (sofern der Server so koniguriert ist). Und alles was nun z.B. per "echo" ausgegeben wurde wird dan "als Datei" an den Webbrowser geschickt.
Im Falle dieses Buttons müssten wir eigentlich wissen was du vor hast wenn "$button_clicked" auf TRUE gesetzt wird. Aber ich hau mal einfach was raus:
Nach dem Klick auf den Button soll ein entsprechender Text angezeigt werden.
Da der Klick auf den Button so nicht funktioniert muss es anders gehen. AJAX wäre eine Möglichkeit (ist auch Javascript und auch POST o. GET) aber erst die Basics.
In HTML macht man das mit Formularen <form></form> diese werden abgeschickt(an den Server) und übertragen Ihre Felder&Werte, diese kann man dan Serverseitig auswerten und eine entsprechende Antwort zurücksenden.
Im folgenden Code MIXE ich das HTML, Javascript und PHP in einer Datei zusammen.
~Arano
<button onclick="<?php $button_clicked = true; ?>">Button<button>
Und noch was ! Du erwartest hier einen Art Interaktion zwischen dem "Interface/Webseite/HTML" und dem Backend/Server/PHP. Das ist so direkt nicht möglich. Wenn du im Webbrowser einen Webseite aufrufst, dann sucht der Webserver nach der passenden "Datei" und sendet sie zurück. Request und Response. Wenn es sich bei der Datei um eine PHP-Datei handelt wird diese erst noch durch den PHP-Interpreter geschickt der das ganze PHP-Gedöns abarbeitet (sofern der Server so koniguriert ist). Und alles was nun z.B. per "echo" ausgegeben wurde wird dan "als Datei" an den Webbrowser geschickt.
Im Falle dieses Buttons müssten wir eigentlich wissen was du vor hast wenn "$button_clicked" auf TRUE gesetzt wird. Aber ich hau mal einfach was raus:
Nach dem Klick auf den Button soll ein entsprechender Text angezeigt werden.
Da der Klick auf den Button so nicht funktioniert muss es anders gehen. AJAX wäre eine Möglichkeit (ist auch Javascript und auch POST o. GET) aber erst die Basics.
In HTML macht man das mit Formularen <form></form> diese werden abgeschickt(an den Server) und übertragen Ihre Felder&Werte, diese kann man dan Serverseitig auswerten und eine entsprechende Antwort zurücksenden.
Im folgenden Code MIXE ich das HTML, Javascript und PHP in einer Datei zusammen.
<?php
// hier haben wir zuerst den PHP-Teil für die Auswertung.
// Bei diesem Aufbau darf PHP-Allerdings nichts ausgeben da dieses als erstes an den Client zurück geschcikt werden würde.
// Daher speichere ich das in Variablen auf die später noch zugegriffen wird.
$text = 'kein Button';
if( isset($_POST['sendbutton1']) )
{
// Das Formular wurde geschikt bzw. der Button geklickt.
$text = 'Das war Senden 1';
}
if( isset($_POST['sendbutton2']) )
{
// Das Formular wurde geschikt bzw. der Button geklickt.
$text = 'Und das der Zweite';
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Testform für Ileies</title>
</head>
<body>
<form action=",/ileies.php" method="POST">
<input type="submit" name="sendbutton1" value="Absenden 1">
<input type="submit" name="sendbutton2" value="Absenden 2">
</form>
<!-- hier kommt noch ein PHP-Teil, mitten in das HTML -->
<p><?php echo $text; ?></p>
<br><br><br>
<p>
<script type="text/javascript">
<!--
// Change me !!!
var fix = true;
//var fix = false;
// Change me !!!
if( fix==true )
{
document.write("<?php echo $text ?>");
}
else
{
document.write("fix ist nicht true");
}
-->
</script>
</p>
</body>
</html>
~Arano
Ok, dann aber bitte nächstes mal die Frage kpl. stellen.
Grundsätzlich währ dein Ablauf so.
Rufst ne Seite auf.
Druckst einen Button dieser holt dann mit Javascript per Ajax von deinem Backend (egal ob js.node oder PHP) über Post oder Get Daten.
Diese Daten können jetzt in JSON codiert sein oder gleich fertig aufbereites HTML.
Damit manipulierst du dann wieder Clientseitig per Javascript deine Seite nach bedarf.
So einfach ist das. Und das findest du auch auf w3schools. Vermutlich nur kein zusammenhängendes Beispiel das du einfach kopieren kannst.
https://www.w3schools.com/jquery/jquery_ajax_intro.asp
Also noch mal zurück zu Schulbank.
Grundsätzlich währ dein Ablauf so.
Rufst ne Seite auf.
Druckst einen Button dieser holt dann mit Javascript per Ajax von deinem Backend (egal ob js.node oder PHP) über Post oder Get Daten.
Diese Daten können jetzt in JSON codiert sein oder gleich fertig aufbereites HTML.
Damit manipulierst du dann wieder Clientseitig per Javascript deine Seite nach bedarf.
So einfach ist das. Und das findest du auch auf w3schools. Vermutlich nur kein zusammenhängendes Beispiel das du einfach kopieren kannst.
https://www.w3schools.com/jquery/jquery_ajax_intro.asp
Also noch mal zurück zu Schulbank.