Dropdown mit array füllen

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

  • Dropdown mit array füllen

    Hallo,

    als ziemlicher php-Neuling bräuchte ich mal eure Hilfe. Im unten angeführten Code wird aus einem Formular in eine Datenbank geschrieben. Soweit so gut. Nun brauch ich noch ein Dropdown-Menü.
    Dieses wollte ich mit den Daten aus einem array füllen, dass ich vorgebenen habe $auswahl =("1", "2", "3" usw);. Danach wollte ich die Auswahl des Users in eine Variable z.B. $ausgesucht schreiben und dann mit in die Datenbank schreiben. (Wie unten die anderen Variablen).
    Soweit die Theorie. Nur wie setz ich das in der Praxis um ? ? ?

    Für einen Codeschnipsel wäre ich euch sehr sehr dankbar !
    In der Such habe ich leider nix passendes gefunden, was mir weiter geholfen hätte.


    <?
    mysql_connect("Server","User","Passwort");
    mysql_select_db("datenbank");
    ?>
    <html>
    <head>
    <title>Datensätze in die Datenbank schreiben</title>
    </head>
    <body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
    <body>
    <form action="<?php echo $senden ?>" method="POST">
    <p><input type="text" name="vorname">Vorname</p>
    <p><input type="text" name="nachname">Nachname</p>
    <p><input type="text" name="Ort">Ort</p>
    <p><input type="text" name="Typ">Typ</p>
    <p><select name="test" size="1">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    </select></p>
    </form>
    <p><input type="submit" name="submit" value="senden"</p>
    <p><input type="reset" name="clear" value="löschen"</p>
    </form>
    </body>
    </html>
    <?
    $vorname = $HTTP_POST_VARS["vorname"];
    $nachname = $HTTP_POST_VARS["nachname"];
    $Ort = $HTTP_POST_VARS["Ort"];
    $Typ = $HTTP_POST_VARS["Typ"];
    $eintrag = "INSERT INTO Tabelle (vorname, nachname, Ort,
    Typ) VALUES ('$vorname', '$nachname',
    '$Ort', '$Typ')";
    $eintragen = mysql_query($eintrag);
    ?>




    Vielen Dank !!!!


    Fritzje 610
    Gruß

    Michael

  • #2
    vielleicht hilft dir das
    PHP-Code:

    <?php
    $select
    =array('a','b','c','d');



    echo 
    '<select name="auswahl">';

    foreach (
    $select as $var){
        echo 
    '<option value="'.$var.'">'.$var.'</option>';
    }

    echo 
    '</select>';
    ?>

    Kommentar


    • #3
      Hallo,

      @peterz, vielen Dank für den Code. Genau so hatte ich mir das von der Funktion her gedacht. Allerdings versteh ich an deinem Script eines nicht, wo steht das Ergebniss, sprich das, was der User angeklickt hat ?
      Irgendwie seh ichs nicht.

      Muss ich eigentlich diese array-Auswahl-Ergeniss Variable auch mit $HTTP_POST_VARS .... deklarieren und wo und wie ?


      Fritzje 610
      Gruß

      Michael

      Kommentar


      • #4
        ja ja,
        also das baust du in dein script ein
        wenn der user auf submit drückt
        steht dir die variable dann als
        $_POST['name'] zur verfügung

        Kommentar


        • #5
          Hallo,

          sodele, einegfügt hab ichs, läuft auch, heisst ich kann die einzelnen Punkte aus dem array anwählen. Allerdings kann ich die Auswahl nicht mit in die Datenbank schreiben. Warum auch immer ?!? Die Feldnamen stimmen und auch die $name ist in dem insert drin.
          Entschuldige wenn ich Dich nerve, aber ich sitz schon Stunden davor und seh, glaub ich, momentan vor lauter Bäumen den Wald nicht mehr.


          <?
          mysql_connect("Server","User","Passwort");
          mysql_select_db("Datenbank");
          ?>
          <html>
          <head>
          <title>Datensätze in die Datenbank schreiben</title>
          </head>
          <body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
          <body>
          <form action="<?php echo $senden ?>" method="POST">
          <p><input type="text" name="vorname">Vorname</p>
          <p><input type="text" name="nachname">Nachname</p>
          <p><input type="text" name="Ort">Ort</p>
          <p><input type="text" name="Typ">Typ</p>


          <? $select=array('auswaehlen','a','b','c','d');
          echo '<select name="auswahl">';
          foreach ($select as $var)
          {
          echo '<option value="'.$var.'">'.$var.'</option>';
          }
          echo '</select>';
          ?>


          <p><input type="submit" name="submit" value="senden"</p>
          <p><input type="reset" name="clear" value="löschen"</p>
          </form>
          </body>
          </html>
          <?
          $vorname = $HTTP_POST_VARS["vorname"];
          $nachname = $HTTP_POST_VARS["nachname"];
          $Ort = $HTTP_POST_VARS["Ort"];
          $Typ = $HTTP_POST_VARS["Typ"];
          $eintrag = "INSERT INTO Tabelle (vorname, nachname, Ort,
          Typ, auswahl) VALUES ('$vorname', '$nachname',
          '$Ort', '$Typ', '$name')";
          $eintragen = mysql_query($eintrag);
          ?>
          Gruß

          Michael

          Kommentar


          • #6
            du nervst doch nicht
            also du brauchst in deiner datenbank noch ein feld mit deinem neuen punkt
            und dann änder dein statement schon geht das
            PHP-Code:
            <?
            $vorname = $HTTP_POST_VARS["vorname"];
            $nachname = $HTTP_POST_VARS["nachname"];
            $Ort = $HTTP_POST_VARS["Ort"];
            $Typ = $HTTP_POST_VARS["Typ"];
            $auswahl=$_POST['auswahl'];

            $eintrag = "INSERT INTO Tabelle 
            (vorname, nachname, Ort,Typ,Auswahl)
            VALUES ('$vorname', '$nachname','$Ort', '$Typ',$auswahl)";
            $eintragen = mysql_query($eintrag);
            ?>

            Kommentar


            • #7
              Hallo,

              yep, funktioniert so wie ich mir das gedacht habe. Vielen vielen an Dank an Dich, peterz.
              Noch ne abschliessende Frage, kann ich dieses Formularfeld auch irgendwie beschriften ? Bei den anderen steht ja Name, Vorname ... dran. Wäre geil, wenn das auch an ner Combo-Box ginge ?


              Fritzje610
              Gruß

              Michael

              Kommentar


              • #8
                das musst du selber rausfinden:
                selfhtml

                Kommentar


                • #9
                  Hi,

                  war zwar bisschen bastelei, aber ich habs hingekriegt. Sogar in Tabellenform. Nun aber mal ein weiterer Geistesblitz von mir. Wenn ich das array und die Füllung dazu habe, die Auswahl mir in $auswahl zu Verfügung steht, dann könnte ich doch auch dieses zu ausgabe verwenden ?!? Indem ich sage, such Dir was aus, das was Du ausgesucht hast, setze ich den Select ..... ein und das Ergebniss gebe ich aus.
                  Hier ist mal die Datei dazu, mit der ich das mal ausprobiert habe.
                  Allerdings habe ich das Problem, das die Auswahl nicht in den Select eingesetzt wird Warum ist das so ??? (Ich tippe in maeiner Naivität mal auf die Übergabe der Variable)


                  <?
                  $dbLink = mysql_connect("Server","User","Passwort");
                  mysql_select_db ("Datenbank", $dbLink);
                  ?>
                  <html>
                  <head>
                  <title>Datensätze aus der Datenbank ausgeben</title>
                  </head>
                  <body>
                  <td width="95"><p>Auswahlbox</p><p><td width="291">
                  <?
                  $select=array('--- auswählen---','411','421','406','416','408','418');
                  echo '<select name="auswahl">';
                  foreach ($select as $var)
                  {
                  echo '<option value="'.$var.'">'.$var.'</option>';
                  }
                  echo '</select>';
                  ?></td></tr>
                  <tr><td width="95">
                  <p><input type="submit" name="submit" value="senden">
                  <td width="95">
                  <p><input type="reset" name="clear" value="löschen">
                  </tr>
                  <?
                  $Query = "SELECT * FROM Tabelle WHERE auswahl LIKE '$auswahl'";
                  $dbResult = mysql_query ($Query, $dbLink);
                  print ("<TABLE BORDER=\"1\">\n");
                  print ("<TR>\n");
                  print ("<TD BGCOLOR=\"#CCCCCC\"><B>Vorname</B></TD>\n");
                  print ("<TD BGCOLOR=\"#CCCCCC\"><B>Nachname</B></TD>\n");
                  print ("<TD BGCOLOR=\"#CCCCCC\"><B>Ort</B></TD>\n");
                  print ("<TD BGCOLOR=\"#CCCCCC\"><B>Typ</B></TD>\n");
                  print ("<TD BGCOLOR=\"#CCCCCC\"><B>Auswahl</B></TD>\n");
                  print ("</TR>\n");
                  while ($dbRow = mysql_fetch_object ($dbResult)) {
                  print ("<TR>\n");
                  print ("<TD>$dbRow->vorname</TD>\n");
                  print ("<TD>$dbRow->nachname</TD>\n");
                  print ("<TD>$dbRow->Ort</TD>\n");
                  print ("<TD>$dbRow->Typ</TD>\n");
                  print ("<TD>$dbRow->auswahl</TD>\n");
                  print ("</TR>\n");
                  }
                  print ("</TABLE>\n");
                  ?>
                  </body>
                  </html>




                  Vielen Dank ! ! !



                  Fritzje 610
                  Gruß

                  Michael

                  Kommentar


                  • #10
                    vielleicht probierstes es mal mit
                    $_POST['auswahl']

                    im statement

                    Kommentar


                    • #11
                      Wohin im statement mit dem Ausdruck. Hab alles ausprobiert was mir einfallen würden. Tut leider aber nicht das was ich wiil.
                      Wollte doch über die Combobox den Suchbegriff vorgeben und dann darüber das Ergebniss des select ausgeben.


                      fritzje610
                      Gruß

                      Michael

                      Kommentar


                      • #12
                        versteh nicht so richtig was du willst

                        ich glaub der fehler ist im statement

                        $Query = 'SELECT * FROM Tabelle WHERE auswahl LIKE "'.$_POST['auswahl'].'"';


                        du kannst doch ganz bequem mit phpMyAdmin deine Statements testen

                        Kommentar


                        • #13
                          Das Problem was ich habe, ist dass ich nicht weiss wie ich es hinkriege, dass das was in der Combobox ausgesucht wurde in das Select Statement einfliesst. Am besten mit nem Button senden (so wie im Listing unten)
                          Das array funktioniert ja auch nur beim Klick auf den Button senden, kommt keine Antwort zurück. Sichergestellt ist, dass er nur im richtigen Feld suchen kann (Auswahl) und auch nur Daten im array sind, die in Auswahl vorkommen können.

                          <html>
                          <head>
                          <title>Datensätze aus der Datenbank ausgeben</title>
                          </head>
                          <body>
                          <td width="95"><p>Auswahlbox</p><p><td width="291">
                          <?
                          $select=array('--- auswählen---','411','421','406','416','408','418');
                          echo '<select name="auswahl">';
                          foreach ($select as $var)
                          {
                          echo '<option value="'.$var.'">'.$var.'</option>';
                          }
                          echo '</select>';
                          ?>
                          </td></tr>
                          <tr><td width="95">
                          <p><input type="submit" name="submit" value="senden"> <br><br>
                          </tr>
                          <?
                          $Query = 'SELECT * FROM unimogs WHERE auswahl LIKE "'.$_POST['auswahl'].'"';
                          $dbResult = mysql_query ($Query, $dbLink);
                          print ("<TABLE BORDER=\"1\">\n");
                          print ("<TR>\n");
                          print ("<TD BGCOLOR=\"#CCCCCC\"><B>Vorname</B></TD>\n");
                          print ("<TD BGCOLOR=\"#CCCCCC\"><B>Nachname</B></TD>\n");
                          print ("<TD BGCOLOR=\"#CCCCCC\"><B>Ort</B></TD>\n");
                          print ("<TD BGCOLOR=\"#CCCCCC\"><B>Typ</B></TD>\n");
                          print ("<TD BGCOLOR=\"#CCCCCC\"><B>Auswahl</B></TD>\n");
                          print ("</TR>\n");
                          while ($dbRow = mysql_fetch_object ($dbResult)) {
                          print ("<TR>\n");
                          print ("<TD>$dbRow->vorname</TD>\n");
                          print ("<TD>$dbRow->nachname</TD>\n");
                          print ("<TD>$dbRow->Ort</TD>\n");
                          print ("<TD>$dbRow->Typ</TD>\n");
                          print ("<TD>$dbRow->auswahl</TD>\n");
                          print ("</TR>\n");
                          }
                          print ("</TABLE>\n");
                          ?>
                          </body>
                          </html>
                          Gruß

                          Michael

                          Kommentar


                          • #14
                            jetzt hab ichs:
                            mußt du ja noch sagen das sich um ein Formular handelt

                            PHP-Code:
                            <html>
                            <head>
                            <title>Datensätze aus der Datenbank ausgeben</title>
                            </head>
                            <body>
                            <form action="datei.php" method="post">

                            <td width="95"><p>Auswahlbox</p><p><td width="291">
                            <?
                            $select=array('--- auswählen---','411','421','406','416','408','418');
                            echo '<select name="auswahl">';
                            foreach ($select as $var)
                            {
                            echo '<option value="'.$var.'">'.$var.'</option>';
                            }
                            echo '</select>';
                            ?>
                            </td></tr>
                            <tr><td width="95">
                            <p><input type="submit" name="submit" value="senden"> <br><br>
                            </tr>
                            </form>

                            <?
                            $Query = 'SELECT * FROM unimogs WHERE auswahl LIKE "'.$_POST['auswahl'].'"';
                            $dbResult = mysql_query ($Query, $dbLink);
                            print ("<TABLE BORDER=\"1\">\n");
                            print ("<TR>\n");
                            print ("<TD BGCOLOR=\"#CCCCCC\"><B>Vorname</B></TD>\n");
                            print ("<TD BGCOLOR=\"#CCCCCC\"><B>Nachname</B></TD>\n");
                            print ("<TD BGCOLOR=\"#CCCCCC\"><B>Ort</B></TD>\n");
                            print ("<TD BGCOLOR=\"#CCCCCC\"><B>Typ</B></TD>\n");
                            print ("<TD BGCOLOR=\"#CCCCCC\"><B>Auswahl</B></TD>\n");
                            print ("</TR>\n");
                            while ($dbRow = mysql_fetch_object ($dbResult)) {
                            print ("<TR>\n");
                            print ("<TD>$dbRow->vorname</TD>\n");
                            print ("<TD>$dbRow->nachname</TD>\n");
                            print ("<TD>$dbRow->Ort</TD>\n");
                            print ("<TD>$dbRow->Typ</TD>\n");
                            print ("<TD>$dbRow->auswahl</TD>\n");
                            print ("</TR>\n");
                            }
                            print ("</TABLE>\n");
                            ?>

                            </body>

                            </html>

                            Kommentar


                            • #15
                              Hallo,

                              tschuldigung, dass ich nicht erwähnt hatte es es umein Formular geht.
                              Aber supergut, das script funktioniert nun so, wie es soll.
                              Vielen vielen Dank an Dich, peterz.


                              fritzje610
                              Gruß

                              Michael

                              Kommentar

                              Lädt...
                              X