Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Dropdown in Schleife

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Dropdown in Schleife

    Hallo PHP'ler,
    ich habe folgendes Problem :
    Ich möchte innerhalb einer Ausgabe 20 gefundene Datensätze ausgeben
    und die weiteren Datensätze in einem Dropdown Menü darstellen.
    Bei der Auswahl im Dropdown Menü soll die Variable "Lfdnr" mit übergeben werden.
    Hat jemand für mich einen Tip wie ich das angehen kann.

    PHP-Code:
    while ($datensatz mysql_fetch_array$abfrageergebnis ))
    {
    $i $i 1;
    if (
    $i <= 20) {
        echo 
    "<tr>";
        
            echo 
    "<td><font color ='#AB003C'>" .$datensatz['Datum']. "</font></td>";
            echo 
    "<td><font color ='#AB003C'>" .$datensatz['Name']. "</font></td>";
            echo 
    "<td><font color ='#000080'><a href='/die-datenbank/laufdaten?lfdnr=" $datensatz['Lfdnr'] . "'>" .$datensatz['Veranstaltung']. "</font></td>";
             echo 
    "<td><font color ='#AB003C'>" .$datensatz['Lizenz']. "</font></td>";
            echo 
    "<td><font color ='#AB003C'>" .$datensatz['Platz']. "</font></td>";
            echo 
    "<td><font color ='#AB003C'>" .$datensatz['Punkte']. "</font></td>";
            echo 
    "</tr>";
    }
    else {
    // Dropdown mit den restlichen Daten

    }

    Hier könnt ihr euch ansehen wie es aussieht.
    http://home2.langbahn-bilder.de/test

  • #2
    Hi.

    Gibt's mehrere Möglichkeiten: du kannst z.B. 2 SQL Abfragen machen und die erste mit LIMIT auf 20 Einträge beschränken und die Ausgabe machen. Direkt danach machst Du ne SQL Abfrage mit LIMIT ab 20 und lässt Dir das in einer DropDown Liste ausgeben. Alternative: So, wie bereits gemacht und und im else Zweig einfach deine DropDown Liste füllen (finde ich die besser Variante). Wo hakt es den jezt genau?

    Wolf29
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      Hallo wolf29,
      danke schon mal für deine Antwort.
      Ich habe leider noch nie Dropdown Menüs gemacht.
      Hab es mal so versucht :
      PHP-Code:
      echo "<select name='lfdnr'>"
      while (
      $datensatz mysql_fetch_array$abfrageergebnis ))
      {

      // Menue zum auswaehlen
      $i $i 1;
          
      // Jeder Datensatz entspricht einer Tabellenzeile
      if ($i <= 20) {
          echo 
      "<tr>";
          
              echo 
      "<td><font color ='#AB003C'>" .$datensatz['Datum']. "</font></td>";
              echo 
      "<td><font color ='#AB003C'>" .$datensatz['Name']. "</font></td>";
              echo 
      "<td><font color ='#000080'><a href='/die-datenbank/laufdaten?lfdnr=" $datensatz['Lfdnr'] . "'>" .$datensatz['Veranstaltung']. "</font></td>";
          echo 
      "<td><font color ='#AB003C'>" .$datensatz['Lizenz']. "</font></td>";
          echo 
      "<td><font color ='#AB003C'>" .$datensatz['Platz']. "</font></td>";
          echo 
      "<td><font color ='#AB003C'>" .$datensatz['Punkte']. "</font></td>";
             
          echo 
      "</tr>";
      }
      else {

      echo 
      "<option name='".$datensatz['Lfdnr']."'>".$datensatz['Veranstaltung']."</option>"

      }

      }
      echo 
      "</select>"
      Dann steht nur nichts im Menü sondern alles auf der Seite.
      http://home2.langbahn-bilder.de/test

      Kommentar


      • #4
        So nimmst Du alles mit, was in der Schleife steht! Mach's lieber mal so:

        PHP-Code:
        <?php

        $option 
        "";

        while (
        $datensatz mysql_fetch_array$abfrageergebnis ))
        {

        // Menue zum auswaehlen
        $i++;
            
        // Jeder Datensatz entspricht einer Tabellenzeile
        if ($i <= 20) {
            echo 
        "<tr>";
            
                echo 
        "<td><font color ='#AB003C'>" .$datensatz['Datum']. "</font></td>";
                echo 
        "<td><font color ='#AB003C'>" .$datensatz['Name']. "</font></td>";
                echo 
        "<td><font color ='#000080'><a href='/die-datenbank/laufdaten?lfdnr=" $datensatz['Lfdnr'] . "'>" .$datensatz['Veranstaltung']. "</font></td>";
            echo 
        "<td><font color ='#AB003C'>" .$datensatz['Lizenz']. "</font></td>";
            echo 
        "<td><font color ='#AB003C'>" .$datensatz['Platz']. "</font></td>";
            echo 
        "<td><font color ='#AB003C'>" .$datensatz['Punkte']. "</font></td>";
               
            echo 
        "</tr>";
        }else {
         
        $option .= "<option name='".$datensatz['Lfdnr']."'>".$datensatz['Veranstaltung']."</option>"

        }

        }

        echo 
        "<select name=\"lfdnr\" size=\"1\">"
        echo 
        $option;
        echo 
        "</select>";  
        ?>
        Wolf29
        while (!asleep()) sheep++;

        Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

        Kommentar


        • #5
          Zitat von wolf29 Beitrag anzeigen
          PHP-Code:
          echo "<select name=\"lfdnr\" size=\"1\">"
          echo 
          $option;
          echo 
          "</select>";  
          ?> 
          Wolf29
          Vermutlich eher so:
          PHP-Code:
          echo "<tr><td><select name=\"lfdnr\" size=\"1\">"
          echo 
          $option;
          echo 
          "</select></td></tr>";  
          ?> 
          Damit's nicht außerhalb der Tabelle landet.

          Kommentar


          • #6
            Hast recht, hab die Tabellenbefehle gar nicht beachtet! Die sollen natürlich noch mit rein.

            @Ingola: Kleiner Tipp, statt

            PHP-Code:
            $i $i 1
            schreib mal lieber

            PHP-Code:
            $i++; 
            Hatte ich jetzt schon bei Dir geändert!

            Wolf29
            while (!asleep()) sheep++;

            Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

            Kommentar


            • #7
              Also erstmal vielen Dank an beide Helfer hier hat super geklappt.

              Aber eine Frage hätte ich noch, wie bekomme ich jetzt den Aufruf
              der nächsten Seite hin, nachdem man aus der Liste einen Eintrag
              ausgewählt hat.

              Gruß Ingo

              Kommentar


              • #8
                2 Möglichkeiten:

                1. Du packst alles in eine Form und schickst es mit POST über einen Submit Button an die gewünschte Seite (diese Variante würde ich nehmen)
                2. Mit JavaScript und dem Onchange Ereignis.

                Wolf29
                while (!asleep()) sheep++;

                Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

                Kommentar


                • #9
                  Hallo wolf29,
                  und nochmals Danke für deine Hilfe.
                  Dann werde ich mich mal mit onchange beschäftigen.
                  Kennst du ein gutes TUT wo es mal erklärt wird wie es funktioniert ?

                  Kommentar


                  • #10
                    Ich würde ehrlich gesagt lieber das Formular nehmen, weil was machst Du, wenn der User JavaScript deaktiviert hat?? Dennoch hier mal ein Link zu onChange und noch einen zu Formularen absenden:

                    http://de.selfhtml.org/javascript/sp...r.htm#onchange
                    http://www.evocomp.de/beispiele/java...-onchange.html

                    http://www.peterkropff.de/site/html/formulare.htm
                    http://www.phpbox.de/php_tutorials/f...versenden1.php
                    usw.

                    Wolf29
                    while (!asleep()) sheep++;

                    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

                    Kommentar


                    • #11
                      "weil was machst Du, wenn der User JavaScript deaktiviert hat"

                      Solche Leute gehören bestraft

                      Kommentar


                      • #12
                        Hallo wolf29,
                        habe mir das mit Javascript mal angesehen, und versuche es erstmal mit
                        der anderen Methode.
                        Aber auch da habe ich Probleme, im anderen Formular kommt die Variable
                        "lfdnr" nicht an.

                        Ich habe es so versucht :
                        PHP-Code:
                        echo '<form method="get" action="laufdaten">';
                        echo 
                        "<tr><td><select name=\"lfdnr\" size=\"1\">"
                        echo 
                        $option;
                        echo 
                        "</select></td></tr>";
                        echo 
                        '<input type="submit" name="Button" value="Abschicken">';
                        echo 
                        '</form>'
                        Muß ich die Variable lfdnr noch extra irgendwo eintragen ?
                        Gruß Ingo

                        Kommentar


                        • #13
                          Dein action Parameter stimmt nicht. Wenn muss da sowas wie action="laufdaten.php" o.ä. stehen. Willst du die Werte über die URL schicken (wegen method="GET")? Prinzipiell ist das "relativ egal", ich persönlich nehme für sowas stets method="POST". Achte auch darauf, dass Du gerade etwas HTML Code vermischt. Dein Form Tag soltle um die Tabelle rum, da du ja alles mitschicken willst, oder nicht?!

                          Wolf29
                          while (!asleep()) sheep++;

                          Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

                          Kommentar


                          • #14
                            <table> muss in den <form> mit rein, und wenn du es so schreibst, dann kannst du es besser lesen und ggf. ergänzen:
                            PHP-Code:
                            echo '
                            <table>
                            <form method="get" action="laufdaten"> 
                             <tr><td><select name="lfdn\" size="1">'
                            ;
                             
                            echo 
                            $option;

                            echo 
                            '
                            </select></td></tr>
                            <table>
                            <input type="submit" name="Button" value="Abschicken">
                            </form>'

                            Der Submit-Button steht Abseits.
                            [PHP]if ($var != 0) {
                            $var = 0;
                            }[/PHP]

                            Kommentar


                            • #15
                              Hallo wolf29,
                              der Aufruf action=laufdaten ist so richtig, da das ganze Script in Wordpress läuft.
                              Das Script wird auch ordnungsgemäß gestartet, nur sieht die Übergabe folgendermaßen aus :

                              http://home2.langbahn-bilder.de/die-...ton=Abschicken

                              Hinter ?lfdnr= übergibt das Script 24.06.2007 dort müßte eigentlich je nach Auswahl eine Zahl erscheinen also die Variable lfdnr.

                              Get habe ich erstmal nur gewählt, damit ich sehe was übertragen wird.

                              Kommentar

                              Lädt...
                              X