falsche id durch java script

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

  • falsche id durch java script

    hallo zusammen....

    und zwar hab ich eine anzeigeliste aller angemeldeter user (aus DB), und nun kann man wenn man möchte auf dessen beschreibung klicken und es öffnet sich ein neues fenster mit window.open,

    das problem ist: es wird immer die gleiche id (die letzte in der DB) weitergegeben (bei mir die 4). was mache ich verkehrt??

    hatte vorher eine normale übergabe an die nächste seite ohne neues fenster und da gings...also liegts am java script oder?

    mein stück text:

    PHP-Code:
    $sql  "SELECT id, nname, stern, palter, geschl, land  FROM person";

    if (
    $result=mysql_query($sql))
    {
       
    $row=mysql_num_rows($result);
       
    $field=mysql_num_fields($result);
       if (
    $row>0)                              
       {
        echo 
    "<Table border=1>";

        for (
    $i=0;$i<$row;$i++)
        {
            
    $erg=mysql_fetch_array($result);
            echo 
    "<tr>";
            for (
    $K=1;$K<$field;$K++)
            {
                echo 
    "<td>".$erg[$K]."</td>";
                
    $bid=$erg[0];
            }

    echo 
    '<script language="javascript">
    function beschreibung()
    {
    window.open("http://localhost/proj/beschr.php?bid='
    .$bid.'&zahl='.$zahl.'&zahlb=3","","width=500,height=700,location=yes");
    }
    </script>'
    ;

    echo 
    "<td>".$bid."<a href=\"javascript:beschreibung();\">Beschreibung</a></td>";
            echo 
    "</tr>";

        }
    }
        echo 
    "</table>";

       }
       else
           echo 
    "FEHLER.";
    }
    else
    {
        echo 
    "Datenbankaufruf fehlgeschlagen";

    soo.... woran kann es liegen, dass immer die letzte id weitergegeben wird?

    Zuletzt geändert von scripter84; 19.08.2003, 17:46.

  • #2
    ... weil die $bid in der 2 forschleife immer bis zum ende derselben durchläuft
    Kissolino.com

    Kommentar


    • #3
      Wenn ich es richtig sehe, erzeugst Du in der Schleife die Funktion 4 mal.
      Javascript nimmt dann beim Aufruf einfach die letzte (ignoriert die 3 darüber wohl) und die wurde ja mit ID 4 generiert.

      Nimm die Funktion aus der Schleife raus und übergebe die notwendigen Daten als Parameter ( beschreibung(id)).

      Kommentar


      • #4
        ja danke.

        ich versteh das schon aber wie mache ich es dann richtig, komme mit eurer lösung nur zu fehlern.?

        Kommentar


        • #5
          hmmm ... irgendwie ist das latent schrottig, was du dir da zusammengeschustert hast.

          - definier am anfang die js-funktion einmal => ausserhalb von while/for

          PHP-Code:
          echo '<script language="javascript">
          function beschreibung(id)
          {
          window.open("http://localhost/proj/beschr.php?bid=" + id + "'
          &zahl='.$zahl.'&zahlb=3","","width=500,height=700,location=yes");
          }</script>'; 
          - dann erzeugst du deine tabelle in einer while schleife (while($row=mysql_fetch_array(Ergebniskennung))
          - in der ausgabe legst du auf den link => onclick="beschreibung(dieIDdieDuBrauchst)"
          - tabelle zu und fertig

          tipp: lass das mal lieber, aus faulheit einen unübersichtlichen code zu erzeugen (siehe 2 for-schleife).
          Kissolino.com

          Kommentar


          • #6
            Edit: ups, da war Wurzel schneller.

            PHP-Code:
            <?php
            $sql  
            "SELECT id, nname, stern, palter, geschl, land  FROM person";

            if (
            $result=mysql_query($sql))
            {

               
            $row=mysql_num_rows($result);
               
            $field=mysql_num_fields($result);
               if (
            $row>0)                              
               {
                echo 
            "<Table border=1>";
                echo 
            '<script language="javascript">
                function beschreibung(bid,zahl)
                {
                window.open("http://localhost/proj/beschr.php?bid='
            +bid+'&zahl='+zahl+'&zahlb=3","","width=500,height=700,location=yes");
                }
                </script>'
            ;

                for (
            $i=0;$i<$row;$i++)
                {
                    
            $erg=mysql_fetch_array($result);
                    echo 
            "<tr>";
                    for (
            $K=1;$K<$field;$K++)
                    {
                        echo 
            "<td>".$erg[$K]."</td>";
                        
            $bid=$erg[0];
                    }


            echo 
            "<td>".$bid."<a href=\"java script:beschreibung($bid,$zahl);\">Beschreibung</a></td>";
                    echo 
            "</tr>";

                }
            }
                echo 
            "</table>";

               }
               else
                   echo 
            "FEHLER.";
            }
            else
            {
                echo 
            "Datenbankaufruf fehlgeschlagen";
            }
            ?>
            Zuletzt geändert von DSB; 19.08.2003, 18:21.

            Kommentar


            • #7
              hy, danke für eure schnelle hilfe,

              aber ich hab das mal so kopiert aber der bringt in der zeile von window.open(...) immer die meldung:

              Notice: Use of undefined constant id - assumed 'id' in d:\www\proj\alle_anzeigen.php on line 73

              der kennt irgendwie die constante "id" nich oder?

              ich habe jetzt mal die ganzen variablen in der window.open-zeile ("...?bid='+id+'&zahl='+$zahl+'&zahlb=3...") rausgenommen und da war natürlich der fehler weg und da hat es funzt,
              aber er zeigt zwar die richtigen zahlen an.....das problem is doch aber das ich auf der nächsten seite "$bid=..." verarbeitet wird und nich ...(3,31) und dadurch fragt er auf der nächsten seite nach den variablen $bid und $zahl....wie kann ich dem browser verklickern, dass das die zahlen in der klammer sind?

              hilfe nötig...?
              Zuletzt geändert von scripter84; 20.08.2003, 10:36.

              Kommentar


              • #8
                PHP-Code:
                echo '<script language="javascript">
                    function beschreibung(bid,zahl)
                    {
                    window.open("http://localhost/proj/beschr.php?bid=" + bid + "&zahl=" + zahl + "&zahlb=3","","width=500,height=700,location=yes");
                    }
                    </script>'

                dein "parse error" ist jetzt weg ... schau mal was nun passiert.
                Kissolino.com

                Kommentar


                • #9
                  ups, hab ich wohl zu spät geändert, ich probiers nochmal schnell...

                  Kommentar


                  • #10
                    ich danke dir recht .....

                    funzt supi... thx

                    Kommentar

                    Lädt...
                    X