138701
Goto Top

Zusammenarbeit von JS und PHP

Hallo zusammen,

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?

Content-Key: 509535

Url: https://administrator.de/contentid/509535

Printed on: April 24, 2024 at 13:04 o'clock

Member: tomolpi
tomolpi Oct 28, 2019 updated at 13:23:50 (UTC)
Goto Top
Zitat von @138701:

Hallo zusammen,

Wie kann ich das machen:
<button onclick="<?php $button_clicked = true; ?>">Button<button>  
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...
Oder das:
<script>
> if (var == true) {
>     <?php echo Test; ?>
> }
> </script>
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!
Und das ohne POST und GET?
Was?

Ich denke, du solltest dir einen komplett neuen Ansatz überlegen. So wird das nix.
Member: Snowman25
Snowman25 Oct 28, 2019 at 13:40:43 (UTC)
Goto Top
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:
<script>
if (var == true) {
   Test
}
</script>
VORSICHT: 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
Member: wiesi200
wiesi200 Oct 28, 2019 at 14:42:36 (UTC)
Goto Top
Hallo,

das geht nicht mit PHP wie schon geschrieben mit JS


https://www.w3schools.com/jquery/jquery_dom_set.asp
Member: Arano
Solution Arano Oct 28, 2019 updated at 18:32:52 (UTC)
Goto Top
Hallo Ileies

<button onclick="<?php $button_clicked = true; ?>">Button<button>  
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.
<?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
Member: Arano
Arano Oct 28, 2019 at 18:32:31 (UTC)
Goto Top
Hallo

Was du allerdings machen kannst, ist, per Ajax PHP-Inhalte nachzuladen und in deine Seite einzubinden.
Das sind doch auch POSt- und GET-Requests.


~Arano
Mitglied: 138701
138701 Oct 28, 2019 at 19:33:18 (UTC)
Goto Top
Das weiß ich alles schon.
Mir ging es darum, ob jemand von euch vielleicht etwas weiß, was ich nicht weiß.
Wie man es eben möglich macht, dass JS und PHP zusammenarbeiten.
Auf w3schools habe ich alles durchgekaut.

Und es ging darum, dass die Seite nicht jedes mal aktualisiert wird, wenn ich eine Aktion ausführe.
Und die Aktion muss nicht onclick sein.
Mitglied: 138701
138701 Oct 28, 2019 at 19:37:20 (UTC)
Goto Top
Mein Ziel ist, ein komplexes Spiel mit PHP zu programmieren, das man immer und überall mit wenig Internet spielen kann. Thema darin sind keine Grafiken sondern Aktionen. Bis jetzt klappt alles wunderbar nur die Zusammenarbeit von PHP und JavaScript würde vieles erleichtern
Member: Snowman25
Snowman25 Oct 28, 2019 updated at 23:00:58 (UTC)
Goto Top
Wenn du ein Spiel machen möchtest, kann ich dir nur empfehlen, es gleich in HTML5 umzusetzen.
Member: wiesi200
Solution wiesi200 Oct 29, 2019 at 05:54:24 (UTC)
Goto Top
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.
Mitglied: 138701
138701 Nov 02, 2019 at 11:42:55 (UTC)
Goto Top
Ich habe jetzt eine Lösung gefunden:

Cookies.

Die können sowohl mit JS als auch mit PHP generiert werden und mit hoher Geschwindigkeit viel Inhalt übermitteln.