# Einen Wert aus Dropdown übergeben



## dooley (1. März 2004)

Aus einer Tabelle einer Datenbank werden die Daten in ein Dropdown-Feld geschrieben. Ein ausgesuchter Wert soll einer SQL- Abfrage übergeben werden, um alle Einträge der Datenbank die zu diesem Wert gehören auszugeben. Meine Suchfunktion funktioniert, doch die Dropdown-Auswahl mit den selben Werten der Suchfunktion eben nicht. Wer kann mir helfen ?


----------



## Backdraft (1. März 2004)

Du hast da mehrere Möglichkeiten:


```
<select name="drop">
<option value="id">Inhalt</option>
</select>
```

Es wird jetzt "Inhalt" im DropDown angezeigt und "id" wird weitergegeben. Entweder per POST dann $_POST['drop'] oder eben GET.

oder


```
<select name="drop" >
<option>Inhalt</option>
</select>
```

Dann wird "Inhalt" in $_POST['drop'] übergeben.

Das DropDown-Menü kannste ja dynamisch füllen.

Ich hoffe das war verständlich.


----------



## low-group (1. März 2004)

hab ein ähnliches Problem mit einem Drop-Down-Feld.
Also bei mir wird das Feld dynamisch angezeigt und auch bei richtiger auswahl übergeben, nur wie funktioniert daß beim Aufruf das was in der DB schon gespeichert ist ausgewählt ist, also das selected, sodaß dieser Eintrag dann auch nicht doppelt im Drop-Down vorhanden ist?

hier mein Inhalt in der Template:

<select name="kat">
 $messagekat
</select> 

und dies ist in der $messagekat drine:

 <option value="$themeid1">$theme1</option>

Das ganze soll für das editieren des Beitrages sein.


----------



## Chino (1. März 2004)

> _Original geschrieben von low-group _
> *nur wie funktioniert daß beim Aufruf das was in der DB schon gespeichert ist ausgewählt ist, also das selected, sodaß dieser Eintrag dann auch nicht doppelt im Drop-Down vorhanden ist?*




```
if ($value_from_db == $themeid1) {
     '<option value="'.$themeid1.'" seleceted>'.$theme1.'</option>';
} else {
     '<option value="'.$themeid1.'">'.$theme1.'</option>';
}
```
 Das soll jetzt aber eher beispielhaft sein, musst Du jetzt natürlich Doch an deine Daten anpassen.


----------



## low-group (1. März 2004)

hmmm... geht irgendwie nicht, hier mal mein code:



```
$result = $db->query("SELECT userid, themeid FROM  bb".$n."_portal_artikel WHERE id='$id'");
while($row = $db->fetch_array($result)){
$puser = $row[userid];
$tid = $row[themeid];

}

$result3 = $db->query("SELECT theme, themeid FROM bb".$n."_portal_art_theme  ORDER BY theme ASC");
while($row3 = $db->fetch_array($result3)){
$theme1 = htmlconverter($row3[theme]);
$themeid1 = $row3[themeid];

if ($tid == $themeid1) { 
     eval ("\$messagekat .= \"".$tpl->get("portal_art_messagekat")."\";");
} else { 
     eval ("\$messagekat .= \"".$tpl->get("portal_art_messagekat2")."\";");
}

}
```

und in der portal_art_messagekat jeweils dein code drinne.


----------



## Chino (1. März 2004)

> _Original geschrieben von low-group _
> *hmmm... geht irgendwie nicht*


Was passiert denn? Wirds einfach nur nich ausgewählt?



> _Original geschrieben von low-group _
> 
> ```
> if ($tid == $themeid1) {
> ...


Was (bzw woher) is denn $tid? Kannst Dir ja mal beide Werte ausgeben lassen, um den Wert zu sehen.

Generell: Ich würde an Deiner Stelle anstatt


```
$puser = $row[userid];
$tid   = $row[themeid];
```
lieber


```
$puser = $row['userid'];
$tid   = $row['themeid'];
```
 verwenden. Prinzipiell geht beides, aber bei Deiner Methode wird erst nach einer Konstanten mit Namen "userid" bzw. "themeid" gesucht, und erst dann nach dem Inhalt aus der DB. Das wirst Du sehen wenn Du in der PHP.INI es so eingestellt hast, dass auch Warnungen ausgegeben werden.


----------



## low-group (1. März 2004)

das $tid ist aus der ersten Abfrage und da wird auch der korekte Wert ausgegeben und bei der Ausgabe $themeid1 wird was andres ausgegeben. Soll ich für $themeid1 ne extra Abfrage machen?


----------



## Chino (2. März 2004)

> _Original geschrieben von low-group _
> *das $tid ist aus der ersten Abfrage und da wird auch der korekte Wert ausgegeben und bei der Ausgabe $themeid1 wird was andres ausgegeben.*


Wenn was anderes ausgegeben wird, dann wird ja auch nichts vorausgewählt. Oder versteh ich Dich da gerade falsch?


----------



## dooley (2. März 2004)

Danke Chris!
Ich hatte vergessen meine <select> Anweisung in den <form> tag mit einzuschliesen. Deshalb konnten keine Werte übergeben werden, wenn ich auf den Submit-Button geklickt habe.
War also ein Syntax-Fehler.
Nochmals Danke für deine Tipps


----------

