php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
SQL Dropdown mit Wert aus der Datenbank vorbelegen


 
Wurstbonbon
23-07-2018, 21:45 
 
Hallo,

ich würde gerne folgendes realisieren.

Ich lese eine Tabelle aus, in der die Spalte "art" gefüllt ist. Dieses Feld soll in ein Ausgabefeld geschrieben werden, das mit dem Wert aus der Datenbank vorbelegt ist.


$sql_art = $db->prepare("SELECT art FROM et_art");
$sql_art->execute();


Hiermit lasse ich mir dann den Wert anzeigen.


<select name="art" id="art" type="text" value="<?php
echo '<select>
<option value="0">Bitte ausw&auml;hlen</option>';
foreach($selection as $selection){
$selected=($options == $selection)? "selected" : "";
echo '<option '.$selected.' value="'.$selection.'">'.$selection.'</option>';
}

echo '</select>'

Soweit so gut.
Wie bekomme ich es denn hin, dass der Wert korrekt dargestellt wird und man trotzdem die Möglichkeit hat, aus den Werten, die in der Tabelle et_art enthalten sind, auszuwählen?

Ohne die Vorbelegung kann ich mir das Dropdown anzeigen lassen.


$sql = $db->prepare("SELECT id, name FROM et_art ORDER BY art");
$sql -> execute();
while ($row_art = $sql->fetch(PDO::FETCH_ASSOC)) {
$art.= "<option value='" . $row_art['art'] . "'>" . $row_art['art'] . "</option>";
}

Wie kann ich denn beides kombinieren?
Stehe da etwas auf dem Schlauch.

Danke sehr

 
Wurstbonbon
25-07-2018, 08:29 
 
Ich habe das Problem gelöst bekommen.

Bestimmt nicht die eleganteste und performanteste Lösung, aber es funktioniert.

Ich lasse mir in dem Feld den aktuellen Wert vorbelegen, damit ich den aktuellen Wert aus der Datenbank sehe.
Danach lasse ich mir die anderen Daten, die im Dropdown angezeigt werden sollen, in einer SQL auslesen (der aktuelle Wert wird nicht in der Slektion berücksichtigt) und dann in einer Schleife ausgeben.



<?

//$art enthält den aktuellen Wert aus der Datenbank
$sql_art = $db->prepare("SELECT art FROM et_art WHERE art <> :art");
$sql_art->bindParam(':art', $art, PDO::PARAM_STR);
$sql_art->execute();
?>

<tr>
<td style="width: 75px;">Status:</td>
<td style="width: 184px;"><select name="art" id="art" type="text" value="<?=$row['art']?>">
<option><?=$row['art']?></option>
<? foreach ($sql_art as $row_art) { ?>
<option><?=$row_art['art'] ?></option><? } ?>
</select><td></tr>

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:34 Uhr.