Problem mit "multiple option select"

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

  • Problem mit "multiple option select"

    Also ich habe ein Formular gemacht mit multiplen option! Wenn ich dann mehrer auswähle und über die Post-Methode übertrage und insert in meine DB mach hab ich das Problem das ich nicht mehrere Werte drin hab sondern nur einen. Die Datenbank Variable ist Tinytext! Also geht es überhaupt multiple Options in Mysql einzufügen und wenn ja wie? Was mach ich falsch?
    M.f.G. Tragon

  • #2
    Bei einer multiplen Auswahlliste muß aus der Formular-Variablen ein Array gemacht werden, dann kannst du alle ausgewählten Werte auslesen:

    Beispiel:
    PHP Code:
    <form method="post">
    <select name="select[]" size="4" multiple>
    <option>eins</option>
    <option>zwei</option>
    <option>drei</option>
    <option>vier</option>
    </select>
    <input type="submit" value="Und ab">
    </form>
    <?

    $auswahlliste = $HTTP_POST_VARS["select"];
    // Achtung, ab PHP 4.1 gilt $_POST statt $HTTP_POST_VARS

    echo "Die von Ihnen ausgewählten Werte:<br><b>";

    for ($i=0;$i<sizeof($auswahlliste);++$i) echo "$auswahlliste[$i]<br>";
    ?>
    Immer erst mal gucken, ob Benzin im Tank ist ...

    Comment


    • #3
      Sorry das ich so dumm Fragen muß aber [] müssen in select aber dann nachher nicht mehr bei der Übertragung?

      Bei mir kommt folgender Fehler wenn ich es so mache:
      Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in /is/ on line 35
      Woran liegt es? Könnte es daran liegen das ich den Php.code direkt in der Mysql Insert Values( ) Anweisung ausführe?
      M.f.G. Tragon

      Comment


      • #4
        Kontrolliere die Schreibweise der Variable einerseits im Formular und andererseits im Skript, die den Array abarbeitet.
        Groß- Kleinschreibung?
        Der Variablenname darf nicht mit einer Zahl beginnen wie etwa $4YOU
        Wie lautet die Variable?

        Im Form ist Vraiable mit [] anzugeben, im Skript, welches diese Vraiable abarbeitet OHNE []

        PHP Code:
        <form method="post">
           <select name="myvariable[]" size="4" multiple>
              <option>eins</option>
              <option>zwei</option>
              <option>drei</option>
              <option>vier</option>
           </select>
           <input type="submit" value="Und ab">
        </form>
        <?

        for ($i=0;$i<sizeof($myvariable);++$i) echo "$myvariable[$i]<br>";
        ?>
        Last edited by hand; 08-06-2002, 08:51.

        Comment


        • #5
          Hoffentklich verstehe ich das richtig es müßte so ja funktionieren,tut es aber leider nicht. Also den "for" hab ich nachdem ich auf submit clicke auf der nächsten Seite. Und dort in INSERT INTO tabelle() Values( '
          for ($i=0;$i<sizeof($myvariable);++$i) echo "$myvariable[$i]<br>";')

          Jetzt kommt dann ein Parser error? Ich weiß leider net woran des liegen könnte? Kann man es so nicht in einen Insert-Befehl schreiben??
          M.f.G. Tragon

          Comment


          • #6
            PHP Code:
            for ($i=0;$i<sizeof($myvariable);++$i) {
               
            // Keine Ahnung was Du da noch so alles machst
               // Keine Ahnung, ob Du je gesetztem Optionsfeld einen INSERT benötigtst   
               
            INSERT INTO tabelle Values''.....); 

            Comment


            • #7
              Also ich will einfach den/die kompletten Werte markiert worden sind einfügen z.B. in tabelle1 und das markierte ALLES in die Option Spalte.Direkt geht es ja nicht, sprich so:??
              INSERT INTO tabelle Values( ' for ($i=0;$i<sizeof($myvariable);++$i) ;' .); ????
              M.f.G. Tragon

              Comment


              • #8
                Ich hab wirklich keinen blassen Schimmer was Du willst, aber vielleicht hilft Dir das ein wenig weiter:

                PHP Code:
                $option "Optionen: ";
                for (
                $i=0;$i<sizeof($myvariable);++$i) {
                   
                $optionen .= $myvariable[$i];
                   
                $optionen .= " ";
                }
                // Im Feld $optionen steht jetzt beispielsweise
                //   "Optionen: eins drei " oder
                //   "Optionen: drei " oder
                //   "Optionen: eins zwei vier " usf. 

                Comment


                • #9
                  Es sollte so sein wenn es geht, dass man in dem Formular eine oder mehre optinonen auswählt
                  --------------------------------------------------------------------------------

                  <form method="post">
                  <select name="select[]" size="4" multiple>
                  <option>eins</option>
                  <option>zwei</option>
                  <option>drei</option>
                  <option>vier</option>
                  </select>
                  <input type="submit" value="Und ab">
                  </form>
                  Dann es auf die Folgeseite übermittelt und man es dann (dachte ich zumindest) so in die DB reinschreibt:
                  for ($i=0;$i<sizeof($select);++$i) {
                  $sql_insert=" INSERT INTO Branche (
                  unternehmensgroesse,
                  branche_der_gesuchten_taetigkeit,
                  )
                  VALUES
                  ('$unternehmensgroesse',
                  '$select[$i]',
                  )";}
                  Allerdings schreibt es bei mir jetzt immer nur den letzten Wert den ich im Multiplen Optionsfeld ausgewählt habe rein!Was mache ich hier jetzt falsch?Weißt du jetzt was ich gemeint habe?
                  M.f.G. Tragon

                  Comment


                  • #10
                    So wie Du es gecodet hast, müßte je Optionsfeld ein Record in die DB geschrieben werden.

                    Du schreibst Die Datenbank Variable ist Tinytext! ich denke Du meist damit branche_der_gesuchten_taetigkeit. Wenn das so ist, würde ich das wir folgt berwerkstelligen:
                    PHP Code:
                    for ($i=0;$i<sizeof($select);++$i) {
                       
                    $optionensammler .= $select[$i] . " ";
                    }

                    // Im Feld $optionensammler steht jetzt beispielsweise
                    //   "eins drei " oder
                    //   "drei " oder
                    //   "eins zwei vier " usf.

                    $sql_insert="INSERT INTO Branche (unternehmensgroesse, branche_der_gesuchten_taetigkeit) 
                                    VALUES ('
                    $unternehmensgroesse', '$optionensammler')"

                    Comment


                    • #11
                      Jo genau so, vielen vielen Dank jetzt funktioniert dies sowie es soll!Echt ein sehr gutes Board mit um einiges besseren Mods!!!!!
                      M.f.G. Tragon

                      Comment


                      • #12
                        Diese Erkenntnis erst mit Post 66 ? *fg*

                        Comment


                        • #13
                          Lieber spät als nie!
                          M.f.G. Tragon

                          Comment

                          Working...
                          X