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?
Problem mit "multiple option select"
Einklappen
X
-
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 ...
-
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
Kommentar
-
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>";
?>Zuletzt geändert von hand; 08.06.2002, 09:51.
Kommentar
-
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
Kommentar
-
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
Kommentar
-
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.
Kommentar
-
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
Kommentar
-
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')";
Kommentar
Kommentar