falsche id durch java script

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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?

    Last edited by scripter84; 19-08-2003, 16:46.

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

    Comment


    • #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)).

      Comment


      • #4
        ja danke.

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

        Comment


        • #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

          Comment


          • #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";
            }
            ?>
            Last edited by DSB; 19-08-2003, 17:21.

            Comment


            • #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...?
              Last edited by scripter84; 20-08-2003, 09:36.

              Comment


              • #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

                Comment


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

                  Comment


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

                    funzt supi... thx

                    Comment

                    Working...
                    X