Patrick757: Mit JS auf PHP Variable zugreifen

Hallo,

habe eine Variable, die mit $_POST in PHP übergeben wird und in $num zwischengespeichert wird. Wie kann ich auf diese Variable aber nun mit JS zugreifen? Ich brauche eine for Schleife, die ungefähr so aussieht:

for(var i=0;i<PHP $NUM;i++) {
  ...
}

Danke!

  1. Hi,

    habe eine Variable, die mit $_POST in PHP übergeben wird und in $num zwischengespeichert wird. Wie kann ich auf diese Variable aber nun mit JS zugreifen?

    gar nicht: Wenn Javascript (im Browser) audgeführt wird, ist PHP (auf dem Server) schon lange mit der Arbeit fertig, seine Variablen existieren nicht mehr.
    Aber du kannst PHP den aktuellen Wert der Variablen an der Stelle ins Dokument schreiben lassen, wo du ihn brauchst.

    Ich brauche eine for Schleife, die ungefähr so aussieht:
    for(var i=0;i<PHP $NUM;i++)

    Du sagst es: "ungefähr". Überlege, wie du an genau dieser Stelle den Wert von $num ins Dokument schreiben kannst. PHP interessiert sich nicht dafür, ob der Browser an dieser Stelle HTML oder Javascript sieht.

    So long,
     Martin

    --
    Man ist so alt, wie man sich fühlt.
    Aber niemals so wichtig.
    1. Hallo,

      hab jetzt ein bisschen nachgeguckt und folgendes erreicht:

      <script type="text/javascript">
        function Check() {
          var num = <?php echo $_POST['num']?>; //Hier wird die Variable aus PHP ausgelesen
          for(var i=1;i<=num;i++) {
            if(document.forms["Form"].elements["Name[i]"].value == "") {
              alert("Bitte füllen Sie den Namen aus!");
              return false;
            }
          }
        }
      </script>

      Der erzeugte HTML Code sieht so aus:

      <script type="text/javascript">
        function Check() {
          var num = 5;
          for(var i=1;i<=num;i++) {
            if(document.forms["Form"].elements["Name[i]"].value == "") {
              alert("Bitte füllen Sie den Namen aus!");
              return false;
            }
          }
        }
      </script>

      Allerdings, durchläuft er jetzt nicht 5 mal die Schleife, wie eigentlich erwartet. Wenn ich mir direkt innderhalb der for Schleife i ausgeben lasse, kommt nur EINMAL i und nicht 5mal... Und in die if Abfrage springt er erst garnicht.

      Warum?

      1. Hi,

        hab jetzt ein bisschen nachgeguckt und folgendes erreicht:
        Der erzeugte HTML Code sieht so aus:

        <script type="text/javascript">
          function Check() {
            var num = 5;
            for(var i=1;i<=num;i++)

        der Weg von PHP nach Javascript ist damit geschafft und völlig korrekt.

        Allerdings, durchläuft er jetzt nicht 5 mal die Schleife, wie eigentlich erwartet. Wenn ich mir direkt innderhalb der for Schleife i ausgeben lasse, kommt nur EINMAL i und nicht 5mal... Und in die if Abfrage springt er erst garnicht.

        Dafür gibt's einen Javascript-Fehler, den du uns hier nicht verrätst. Denn du willst hier fünf mal auf ein Element mit name="Name[i]" zugreifen. Ein Element mit diesem Namen gibt es aber vermutlich nicht.

        if(document.forms["Form"].elements["Name[i]"].value == "")

        Ich gehe doch recht in der Annahme, dass du hier schon mindestens unter dem zweiten Namen zum gleichen Thema postest?

        Ciao,
         Martin

        --
        "Life! Don't talk to me about life!"
          (Marvin, the paranoid android in Douglas Adams' "The Hitchhiker's Guide To The Galaxy")
        1. Dafür gibt's einen Javascript-Fehler, den du uns hier nicht verrätst. Denn du willst hier fünf mal auf ein Element mit name="Name[i]" zugreifen. Ein Element mit diesem Namen gibt es aber vermutlich nicht.

          Hallo,

          nein es wird kein JS Fehler ausgegeben und das Element mit dem Namen Name[1] gibt es 5mal bzw. Name[1], Name[2],...Name[5].

          1. Hi,

            nein es wird kein JS Fehler ausgegeben und das Element mit dem Namen Name[1] gibt es 5mal bzw. Name[1], Name[2],...Name[5].

            es gibt kein einziges Element mit dem Namen "Name[i]", und nach dem suchst Du.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Stimmt, ich hab jetzt erst verstanden, dass das ganze ja als String gewertet wird und der also nach einem Array mit dem Index i sucht, anstatt den Inhalt der Variablen i zu benutzen. Ich habe jetzt mal bei http://de.selfhtml.org/javascript/sprache/variablen.htm gesucht, aber keine Möglichkeit gefunden das innerhalb der " ... " richtig anzugeben. Wie geht das?

              1. Hi,

                Stimmt, ich hab jetzt erst verstanden, dass das ganze ja als String gewertet wird und der also nach einem Array mit dem Index i sucht, anstatt den Inhalt der Variablen i zu benutzen. Ich habe jetzt mal bei http://de.selfhtml.org/javascript/sprache/variablen.htm gesucht, aber keine Möglichkeit gefunden das innerhalb der " ... " richtig anzugeben. Wie geht das?

                auf der von Dir genannten Seite enthält gleich das erste Beispiel die entsprechende Möglichkeit.

                Cheatah

                --
                X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes
          2. nein es wird kein JS Fehler ausgegeben

            Sicher wird der nicht ausgegebn, du musst nachschauen ob einer aufgetreten ist. Je nach Browser, entweder in der Statusleiste oder in der Fehlerkonsole.

            Struppi.

        2. Hi!

          der Weg von PHP nach Javascript ist damit geschafft und völlig korrekt.

          Wenn man nur oberflächlich hinschaut, mag das so aussehen. Aber wie so oft wurde der Kontextwechsel nicht beachtet.

          Lo!

  2. Hallo,

    habe eine Variable, die mit $_POST in PHP übergeben wird und in $num zwischengespeichert wird.

    Danke!

    Opa Horst hat das wie Folgt gelöst:
    Beispiel 1:
    <?php // irgentwo im PHP-Script
    if($_POST[intro]){echo"<script type="text/javascript"> var intro ='$_POST[intro]';</script>\n";}

    Beispiel2:
    echo"<script type="text/javascript"> var mepu ='$anzth';var obj=new Array();</script>";
    for($i=0;$i<$anzth;$i++){$y=$matrix[$i][1];echo"<script type="text/javascript">obj[$i]=$y;</script>";}

    So sieht ein Ausschnitt des späteren html_scripts aus:

    <script type="text/javascript"> var intro ='1';</script>
    <script type="text/javascript"> var mepu ='5';var obj=new Array();</script><script type="text/javascript">obj[0]=14;</script><script type="text/javascript">obj[1]=47;</script><script type="text/javascript">obj[2]=18;</script><script type="text/javascript">obj[3]=3;</script><script type="text/javascript">obj[4]=10;</script>

    Die Auswertung der Variablen und des Arrays wird innerhalb einer Function im javascript erfolgen.

    hoffentlich klappts
    Opa Horst