Andre: Kombination PHP =

Abend,

ich 2 Fragn zur Kombination von Javascript und PHP:

1. Kann ich per Javascript einen PHP Befehl ausführen?
2. Kann ich mit Javascript aus PHP heraus werte auslesen / in Javascript übernehmen?

Vielleicht hat der ein oder andere ja noch ein paar Tricks auf Lager weil ich schon glesen hab das das nicht gehen soll (was bei mir stundenlange Arbeit zunichte machen wüerde :-( )

Gruß und Danke im Vorraus
Andre

  1. ich 2 Fragn zur Kombination von Javascript und PHP:

    1. Kann ich per Javascript einen PHP Befehl ausführen?
    2. Kann ich mit Javascript aus PHP heraus werte auslesen / in Javascript übernehmen?

    Kommt darauf an, was du konkret meinst. Erstmal weiß Javascript nichts von PHP sondern läuft nur auf dem Client, während PHP auf dem Server ausgeführt wird und lediglich JS Code erzeugen kann, ausgeführt wird er dann im Browser.

    Trotz allem können natürlich PHP und JS miteinander kommunizieren.

    Struppi.

    1. ich 2 Fragn zur Kombination von Javascript und PHP:

      1. Kann ich per Javascript einen PHP Befehl ausführen?
      2. Kann ich mit Javascript aus PHP heraus werte auslesen / in Javascript übernehmen?

      Kommt darauf an, was du konkret meinst. Erstmal weiß Javascript nichts von PHP sondern läuft nur auf dem Client, während PHP auf dem Server ausgeführt wird und lediglich JS Code erzeugen kann, ausgeführt wird er dann im Browser.

      Trotz allem können natürlich PHP und JS miteinander kommunizieren.

      Struppi.

      Also ich hab folgendes vor:
      Ich schreib grad an einem Browsergame und beim Bau von Gebäuden kann man sich erst das Gebäude und dann den Bauplatz aussuchen.

      Das alles geschieht mit Javascript bei dem ich Variablen eben für Grundstück und Gebäude habe. Nun will ich irgendwie mit diesen Variablen und einen passenden Befehl das dem Server beibringen (in die Datenbank MySQL schreiben).

      Ich hab ein Vorbild sodas ich sagen kann das das nur mit Javascript, HTML und PHP funktionier. Ist nur die Frage wie....

      Andre

      1. Hi,

        in dem Fall lässt du deine lokale Bearbeitung so mit JavaScript wie du es im Moment hast. Sobald dann der Moment des Bauens gekommen ist, schickst du entweder ein Formular an den Server, im Sinne von
        <input type="hidden" name="grundstueck" value="">
        <input type="hidden" name="gebaeude" value="">
        Du befüllst erst mit JavaScript die beiden Felder und schickst das Formular dann ab. Alternativ zum Formular kannst du auf GET schwenken und direkt eine URL aufrufen:
        self.location.href="bauen.php?gebaeude="+gebaeude+"&amp;bauplatz="+bauplatz;
        (Werte noch URL-encodieren...)

        MfG
        Rouven

        --
        -------------------
        ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
        1. Hi,

          in dem Fall lässt du deine lokale Bearbeitung so mit JavaScript wie du es im Moment hast. Sobald dann der Moment des Bauens gekommen ist, schickst du entweder ein Formular an den Server, im Sinne von
          <input type="hidden" name="grundstueck" value="">
          <input type="hidden" name="gebaeude" value="">
          Du befüllst erst mit JavaScript die beiden Felder und schickst das Formular dann ab. Alternativ zum Formular kannst du auf GET schwenken und direkt eine URL aufrufen:
          self.location.href="bauen.php?gebaeude="+gebaeude+"&amp;bauplatz="+bauplatz;
          (Werte noch URL-encodieren...)

          MfG
          Rouven

          Jo, danke.
          Hab mir grad nochmal meine Vorlage angesehen- da geht das genauso. Ajax sieht extrem interessant aus aber ich schreibe erst seit ner guten Woche Javascript und das sieht mir doch noch ein wenig zu hoch aus...

          Ach ja: Wie muss denn dann der Server konfiguriert werden bzw. mit was macht man das? Srry aber Serverseitig fehlt mir einfach die Erfahrung...

          Nochmal Danke an alle!

          1. Ajax ist eigentlich nicht so schwierig:

            1.Musst du ein XmlHttpRequest-Object erstellen

            var http;
            var browser = navigator.appName;
            if(browser == "Microsoft Internet Explorer")
            {
               http = new ActiveXObject("Microsoft.XMLHTTP");
            }
            else
            {
               http = new XMLHttpRequest();
            }

            2.Musst du mit open die Url einstellen und mit send die Abfrage absenden

            function Setze_Wert(wert_1,wert2)
            {
             http.open('get', 'setze_wert.php?DeineVariable1='+wert_1 +'&DeineVariable2=' + wert_2);
            http.send(null);
            }

            3.Um den Rückgabewert der Phpseite zulesen musst du in onreadystatechange eine Funktion angeben die Aufgerufen wird wen die Seite geladen ist

            function Lese_Wert()
            {
             if(http.readyState == 4)
             {
               deine_variable =  http.responseText;
             }
            }

            function Start_Lese_Wert()
            {
              http.open('get', 'lese_wert.php);
              http.onreadystatechange = Lese_Wert
              http.send(null);
            }

            1. Hi,

              var browser = navigator.appName;
              if(browser == "Microsoft Internet Explorer")

              och nö... was hat denn der UA für eine Aussagekraft? Überprüfe die Funktionen, die Du nutzen willst.

              freundliche Grüße
              Ingo

        2. Hallo Rouven!

          (Werte noch URL-encodieren...)

          IMHO ist URL-Encoden das ersetzen von Freizeichen zu %20 usw.
          Ich habe schon mal versucht, dass es damit (also ? und & in solchen Code verwandelt) auch funzt, $_GET-Parameter zu übergeben.
          Der W3C-Validator sogar wertet ein ? oder & in einer URI als Fehler.

          Warum, bitte, ist dann bei nahzu allen, auch Seiten mit "Vorbildsfunktion" wie SelfHTML oder Google die URI _nicht_ encodiert?

          Danke für Aufklärung,

          werbeklaus

          1. Hi,

            Warum, bitte, ist dann bei nahzu allen, auch Seiten mit "Vorbildsfunktion" wie SelfHTML oder Google die URI _nicht_ encodiert?

            OK, ich weiß im Moment keine bessere Erklärung als "aus dem selben Grund warum HTML-Seiten nicht valide sind". Es funktioniert auch und es macht weniger Arbeit...
            Davon abgesehen tut der Browser bei der Anforderung einer solchen URL im Hintergrund vielleicht einiges, von dem du nichts mitbekommst, z.B. eine URL automatisch zu enkodieren, wodurch es dann überhaupt erst funktioniert.

            MfG
            Rouven

            --
            -------------------
            ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
          2. Hi,

            Warum, bitte, ist dann bei nahzu allen, auch Seiten mit "Vorbildsfunktion" wie SelfHTML oder Google die URI _nicht_ encodiert?

            Google ist - was den uelltext betrifft - kein Vorbild (der muß nur funktionieren). Aber sage doch bitte, was in SELFHTML nicht korrekt angegeben ist.

            freundliche Grüße
            Ingo

            1. Hallo,

              Google ist - was den uelltext betrifft - kein Vorbild (der muß nur funktionieren). Aber sage doch bitte, was in SELFHTML nicht korrekt angegeben ist.

              Angegeben (erklärt) ist alles bestens, aber oben in meiner Addressenleiste stehen gerade genügend '?fupto=' und '&a=' ...
              Und um die encodierung dieser '&' und '?' geht es doch ?!?

              werbeklaus

              1. Google ist - was den uelltext betrifft - kein Vorbild (der muß nur funktionieren). Aber sage doch bitte, was in SELFHTML nicht korrekt angegeben ist.

                Angegeben (erklärt) ist alles bestens, aber oben in meiner Addressenleiste stehen gerade genügend '?fupto=' und '&a=' ...
                Und um die encodierung dieser '&' und '?' geht es doch ?!?

                Schau mal in den Quelltext, darum geht es.

                Struppi.

                1. Hallo :-)

                  Schau mal in den Quelltext, darum geht es.

                  Huch, ich war mir nicht bewusst, dass der Browser in der Adressenleiste trotzdem das '&' einsetzt ....

                  Danke für die Aufklärung !

                  werbeklaus

                  1. echo $begrüßung;

                    Huch, ich war mir nicht bewusst, dass der Browser in der Adressenleiste trotzdem das '&' einsetzt ....

                    Die "Adressenleiste" eines Browsers unterliegt nicht den Beschränkungen von HTML oder HTTP - oder allgemeiner gesagt: Dokumentenformaten oder Protokollen - weshalb man da auch eingeben kann, was man will. Die zur Übertragung notwendige Umwandlung muss den Anwender nicht kümmern.

                    echo "$verabschiedung $name";

  2. Hallo Andre.

    1. Kann ich per Javascript einen PHP Befehl ausführen?

    Du kannst mit JavaScript eine PHP-Seite aufrufen, die dann einen PHP-Befehl ausführt.

    1. Kann ich mit Javascript aus PHP heraus werte auslesen / in Javascript übernehmen?

    Natürlich. Das ist bereits durch <script type="text/javascript" src="script.php"></script> möglich.

    Vielleicht hat der ein oder andere ja noch ein paar Tricks auf Lager weil ich schon glesen hab das das nicht gehen soll (was bei mir stundenlange Arbeit zunichte machen wüerde :-( )

    Am Besten beschäftigst du dich mit AJAX.
    Kannst ja mal ein bisschen rumgooglen, AJAX ist zur Zeit ziemlich aktuell und du wirst es in einigen Blogs finden.

    Man liest sich, H2O

    --
    Dodwin | Download Opera
    [ie:% fl:( br:< va:) ls:[ fo:| rl:( n4:( ss:) de:> js:| ch:? sh:( mo:| zu:}](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%25%20fl%3A(%20br%3A%3C%20va%3A)%20ls%3A%5B%20fo%3A%7C%20rl%3A(%20n4%3A(%20ss%3A)%20de%3A%3E%20js%3A%7C%20ch%3A%3F%20sh%3A(%20mo%3A%7C%20zu%3A%7D)
  3. Hi,

    Vielleicht hat der ein oder andere ja noch ein paar Tricks auf Lager

    Wenn das PHP nur einfach etwas machen soll, dann kann das Script mit

      
    <?php  
     header('Status: 204 No Content');  
     header('HTTP/1.0 204 No Content');  
     header('Connection: close');  
      
     // Hier was machen  
    ?>  
    
    

    auch "stumm bleiben. Also bei einem JS window.location.href="machwas.php?parameter"; wird das PHP-Script aufgerufen, ohne daß die aktuell angezeigte Seite geändert wird.

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!