Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

mehrere Variablen mit SELECT pulldown übergeben.





Frage

Hallo, ich bin seit Tagen am probieren wie ich mit Hilfe eines SELECT-pulldown Menus mehrer Variablen übergeben kann. ( aus array oder sql db ) <select name="news[]"> <?php include ("dbcon.php"); $abfrage= "SELECT * FROM opt WHERE id=$f_id"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)) { echo "<option value=$row->oid>$row->object</option>"; } ?> </select> Wie kann ich per value= mehrere Variablen übergeben und später auslesen? Vielen Dank

Antwort 1 von semi

Bei Pulldown ist nur ein Eintrag auf einmal selektierbar.
Als Liste geht es so

<?
function ausgabe($item, $key) {
  echo "$item ";
}

if(isset($values)) {
  echo "values[] = ";
  array_walk($values, 'ausgabe');
  exit();
}
?>
<form action="<?echo $PHP_SELF;?>">
<select name="values[]" size="3" multiple="multiple">
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
</select>
<input type=submit>
</form>
Beachte die Klammern. Ansonsten guck mal hier

Gruß,
Michael

Antwort 2 von AlexPhP

Danke Michael,

leider hilft mir das nur bedingt.
Ich wollte folgendes erreichen:

1.Darstellen einer SQL Tabelle in einem Select - Pulldown - klappt..
2. Sobald option angeklickt = Action
- klappt im moment nur über Javascript:-(
3. Bei der Auswahl einer Option im Pulldown soll nicht nur diese weitergeben werden sondern noch eine 2. variable aus der SQL-Tabelle.
- klappt gar nicht :-(

4. Vielen Dank für die Hilfe!

Antwort 3 von semi

Du kannst zusätzliche Informationen in versteckten Formularfeldern halten, diese mit Javascript manipulieren und das ganze an das Skript wieder zurückschicken.
Oder als Value eines jeden Eintrages in der Liste, mehrere durch irgendeinen Delimiter (z.B. Komma) getrennte Werte setzen.
z.B.

<select ....>
<option value="1,Bart,Simpson,Springfield">Bart</option>
...usw.

Oder meinst Du was anderes?

Antwort 4 von AlexPHP

Genau das meinte ich :-)
Vielen Dank, auf die Art kann ich mir jetzt mehrere variablen per strtok rauspicken...

Nun hab ich gleich noch nen Anliegen.
Wie kann ich tabellen in mysql verknüpfen?
Im moment ist meine Lösung so:

3 Tabellen
1. Tabelle = Benutzer(id,name, ort etc)
2. Tabelle = optionen(oid,id,opt_id)
3. Tabelle = opt_list(opt_id,opt_name, opt_value)

Wie kann ich eine SQL-Beziehung zwischen der 2. und der 3. Tabelle basteln, um nicht mit einer doppelten Select/While Abfrage anfagen zu müssen?

im mom
Select * FROM optionen WHERE id=$bid...
.
.
while...
{
SELECT opt_name,opt_value FROM opt_list WHERE opt_id=$row->opt_id...
While..
{
}
}

Geht das nicht einfacher???

Antwort 5 von semi

Ungefähr so. Mir ist aber die Beziehung der beiden Tabellen zueinander nicht klar.

SELECT opt.*, optlst.opt_name, optlst.opt_value
FROM optionen opt, opt_list optlst
WHERE opt.id=$bid 
  AND opt.opt_id = optlst.opt_id

Gruß,
Michael

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: