javscript variable in PHP

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

  • javscript variable in PHP

    Hi @all,

    ich sitz hier mal wieder vor einem Problem...mehrere Stunden schon , und komme einfach net weiter:

    PHP-Code:
    <?
    $query = mysql_query("SELECT * FROM news order by rand();");
    $array = array();

    $i = 0;

    while ($get = mysql_fetch_array($query)) {
        
        $msg[$i] = $get['name'] . ": " . $get['text'];

        array_push($array,$msg[$i]); 

        $i++;

    }

    $count = count($array);

    ?>
    <SCRIPT LANGUAGE="javascript">
    var msg=new Array()

    for (var j=msg.length; msg.length <= <?=$count-1;?>; j++) {
    msg[j] = "<?=$array["+j+"];?>";
    document.write(msg[j]);
    }
    Hier steckt mein Problem:
    msg[j] = "<?=$array["+j+"];?>";

    In dem PHP-Array sind zwei Werte enthalten ($array[0],$array[1]) ...

    soweit so gut...
    nun muss ich es hinbekommen, dass ich diese arraywerte nacheinander in das Array von dem Javascript pushen kann.

    am schluss soll es so dastehen bzw. es soll so sein (im Javascript Teil):

    msg[0] = "Das ist der Wert aus Array[0]";
    msg[1] = "Das ist der wert aus array[1]";

    ....

    Ich hoffe ihr versteht was ich meine und könnt mir helfen, denn ich bin hier schier am verzweifeln, wo es meiner Meinung nach doch nur eine Variable ist, die ich von javascript in das PHP Gerüst einbauen muss... (msg[j] = "<?=$array["+j+"];?>"; )

    cya CrazyPip

  • #2
    Hallo.

    Das wird so nicht gehen. PHP wird Serverseitig ausgeführt und JS Clientseitig. Der Array den Du per JS abfragen willst ist nicht mehr vorhanden.

    Du musst per PHP einen JS-Array erzeugen denn Du dann mit JS aufrufen kannst.

    Armin

    Kommentar


    • #3
      ahh...

      und wie erstelle ich einen Javascript-Array in PHP den ich dann wiederrum in Javascript benützen kann?

      ein kleines Beispiel wäre nicht schlecht


      cya CrazyPip

      Kommentar


      • #4
        Hi,

        warum fügst Du den Text nich gleich per PHP ein sondern über JS?

        Hier nur so ein kleiner Gedankengang.
        PHP-Code:
        while ($get = mysql_fetch_array($query)) {
            
            $msg .= '\"'.$get['name'] . ':' . $get['text'].'\",';
            $i++;

        }

        <SCRIPT LANGUAGE="javascript">
        var msg=new Array(<?=$msg;?>)

        for (var j=msg.length; msg.length <= <?=$i;?>; j++) {
        msg[j] = "<?=$array["+j+"];?>";
        document.write(msg[j]);
        }

        Kommentar


        • #5
          EDIT:
          BielWeb war schneller
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            Hi,

            hier entsteht wieder das Gleiche Problem. Das mit den Arrays was du schon oben erwähntest, war nicht ganz richtig. ICh kann die PHp_arrays ohne größere Probleme benützen.

            Es geht wirklich nur um diese Zeile:

            <?=$array["+j+"];?>

            wenn ich statt +j+ einen Wert einsetze (0 oder 1 -> sind ja zwei Arrays), dann wird dieser angesprochene Array auch für das Script benützt, sprich: das Array wird angezeigt...



            cya CrazyPip

            Kommentar


            • #7
              du trennst einfach von der logik her nicht sauber zwischen deinem php-script, und dem output den du erzeugst.

              das php-array hast du in einer ausgegebenen seite definitiv nicht mehr als array zur verfügung.
              du musst dieses beim erzeugen des outputs das php-array in ein javascript-array reinschreiben, wenn du darauf zugreifen willst.

              das script von bielweb war doch eigentlich schon ganz gut, bis auf diese zeile im js-code:
              msg[j] = "<?=$array["+j+"];?>";

              die ist doch eigentlich überflüssig, denn mit dieser zeile:
              var msg=new Array(<?=$msg;?>)
              erzeugst du doch schon ein JS-array, auf das du dann zugreifen kannst.

              also:

              PHP-Code:
              while ($get = mysql_fetch_array($query)) {
                  
                  $msg .= '\"'.$get['name'] . ':' . $get['text'].'\",';
                  $i++;

              }

              <SCRIPT LANGUAGE="javascript">
              var msg=new Array(<?=$msg;?>)

              for (var j=msg.length; msg.length <= <?=$i;?>; j++) {
              document.write(msg[j]);
              }


              allerdings ist mir der sinn nich ganz klar:

              warum willst du das array erst mit javascript document.write in deine seite schreiben?

              warum schreibst du nicht gleich in einer schleife über dein php-array den entsprechenden html-output in die siete...?
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                noch was:

                while ($get = mysql_fetch_array($query)) {
                $msg .= '\"'.$get['name'] . ':' . $get['text'].'\",';
                $i++;
                }

                hier müsste eigentlich noch das letzte komma wieder entfernt werden, ansonsten hast du nachher noch ein überflüssiges komma in deinem output stehen.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  @cya CrazyPip

                  Nein, das geht nicht.

                  In der Zeile <?=$array["+j+"];?> ist der $array von PHP, Serverseitig. Das j ist von JS, Clientseitig. Wo soll JS die Daten für den array her bekommen????
                  Und wenn Du eine Zahl im PHP Code anstelle von j einträgst, wird ja der entsprechende Arrayeintrag geschrieben.

                  @ wahsaga

                  Jau, das mit der einen Zeile habe ich übersehen.

                  Armin
                  Zuletzt geändert von BielWeb; 03.03.2003, 12:07.

                  Kommentar


                  • #10
                    @wahsaga
                    das mit dem document.write habe ich nur zur überprüfung reingeschrieben, weil ich sehen wollte, welche Werte am Ende die JS-Arrays haben...am Ende soll ja das dastehen

                    <script>
                    msg[0] = "hier der wert aus der DB -> $array[0]"
                    msg[1] = "hier der wert aus der DB -> $array[1]"
                    </script>

                    und da wollte ich einfach schauen, ob die Werte auch korrekt übergeben wurden.

                    Aber nun leuchtet mir der Unterschied ein mit dem JS array und dem von PHP...

                    also gut...ich probiers dann mal mit eurer Lösung - Danke euch beiden

                    machets guat

                    cya CrazyPip

                    Kommentar

                    Lädt...
                    X