Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP Variable auslesen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP Variable auslesen

    Hallo an alle,

    ja ich weiß PHP läuft Serverseitig und Javascript Clientseitig. Trotzdem suche ich für mein Problem eine Lösung.

    Alle 5 min lasse ich über Javascript eine PHP Seite aufrufen. Diese prüft ein paar Werte in der Datenbank.
    Wenn die Werte vorhanden sind wird die Variable $exists=1; gesetzt wenn nicht erhält die Variable den Wert 0. So weit so gut.
    Aus komfortgründen möchte ich nun aber das Javascript über innerhtml in ein Div Container bei $exists=1 ein Bild anzeigt.
    Doch wie prüfe ich eine PHP Variable ab, ob jene gesetzt ist oder nicht?
    Auf dem Server ist diese ja zum Zeitpunkt gesetzt. Ich möchte dies eigentlich nicht über Session machen.

  • #2
    Gar nicht. JavaScript sieht keine PHP-Variablen. JavaScript müsste einen Request an PHP schicken, und PHP würde darauf eine Respons zurück schicken (grob gesagt, dazwischen gibts ja noch den Webserver). Stichwort: AJAX.

    Als Alternative kannst du auch den umgekehrten weg gehen und PHP an JavaScript eine Mitteilung mit dem neuen Wert schicken. Stichwort: WebSocket.

    Kommentar


    • #3
      websocket klingt ja eigentlich nicht schlecht dafür bräuchte ich aber viel mehr zeit zum einarbeiten. Das scheidet eigentlich erst mal aus. von Ajax habe ich leider überhaupt keine Ahnung. Also so zu sagen das gleiche Problem wie websocket. aber ich könnte doch mit jsonencode mir mein Ergebnis aus der SQL Abfrage an Javascript schicken lassen und dann mein innerhtml damit füttern. Das sollte ja gehen

      Kommentar


      • #4
        Zeig doch mal, was Du bisher gemacht hast, sonst bleibt es ein Ratespiel.

        Kommentar


        • #5
          Alternativ könntest du dein PHP-Skript per img-Tag einbinden. Dein img aktualisierst du per Javascript alle 5 min. Dein PHP-Skript prüft nun nicht nur die Werte aus der Datenbank, sondern generiert wenn die Werte vorhanden sind ein Bild, welches du dann auslieferst. Wenn die Werte nicht vorhanden sind, dann wird ein anderes/leeres Bild ausgeliefert.

          Kommentar


          • #6
            so nun aber: ich will nicht das ganze Projekt hier aufzeigen sondern nur die teile die relevant sind:

            in meiner Validation.js steht folgendes wenn Seite komplett geladen dann:

            Code:
              setInterval(function(){
            
              
               $.post('../set_timestamp_FB6_1.php').done(function(Daten_set_timestamp_FB6_1){
                     console.log(Daten_set_timestamp_FB6_1);
              
                  
                 var Daten_set_timestamp_FB6_1 = JSON.parse(Daten_set_timestamp_FB6_1);
              
              
               });
              
               alert("Hello");
               },60000);

            die PHP Datei set_timestamp_FB6_1 sieht folgendermaßen aus:
            PHP-Code:
            $produktionlaeuft=1;
             
            $produktionlaeuft_XP['Status_FB6_1'] = array();
             
            array_push($produktionlaeuft_XP['Status_FB6_1'],$produktionlaeuft);
             
             echo 
            json_encode($produktionlaeuft_XP); 

            so war jetzt mein Ansatz! aber irgendwie stupst er auf dem Server die set_timestamp_FB6_1.php nicht an. kann ich das irgendwie prüfen ob die angestupst wurde? zu sehen ist ebenfalls nichts im Konsolenlog

            Kommentar


            • #7
              Du fängst den Fehlerfall nicht ab, der offensichtlich auftritt, sondern ignorierst ihn einfach.

              Verwende übrigens immer absolute Pfade und keine relativen.

              Und JSON.parse() ist Käse. jQuery parsed automatisch JSON-Content, vorausgesetzt dein PHP-Script verwirrt jQuery nicht, indem es einen falschen Content-Type im HTTP-Header sendet.

              POST dient übrigens dazu Daten zu speichern, GET um Daten abzufragen. Scheinbar möchtest du etwas abfragen, also verwende auch GET.

              Kommentar


              • #8
                kannst du mir vielleicht einen tipp geben wie ich überprüfen könnte ob die set_timestamp_FB6_1.php angestupst wird? In der PHP muss doch gar kein jquery includiert werden oder habe ich jetzt was falsch verstanden? relative pfade nutze ich immer zum entwickeln.

                Kommentar


                • #9
                  Zitat von tutter Beitrag anzeigen
                  kannst du mir vielleicht einen tipp geben wie ich überprüfen könnte ob die set_timestamp_FB6_1.php angestupst wird?
                  Schau ins Netzwerk-Log deines Browsers.

                  Zitat von tutter Beitrag anzeigen
                  In der PHP muss doch gar kein jquery includiert werden oder habe ich jetzt was falsch verstanden?
                  PHP hat mit jQuery nichts zu tun. Die Kommunikation erfolgt über HTTP. Damit PHP richtig arbeiten kann, muss jQuery den richtigen HTTP-Request schicken. Und damit jQuery richtig arbeiten kann, muss PHP den richtigen HTTP-Response zurück senden. Wenn du mit beiden zusammen programmieren möchtest, eigne dir HTTP-Grundlagenwissen an. Ohne dem geht nichts.

                  Zitat von tutter Beitrag anzeigen
                  relative pfade nutze ich immer zum entwickeln.
                  Dies bringt eine unnötige Instabilität und erschwert die Fehlersuche.

                  Kommentar

                  Lädt...
                  X