Auswahlliste vorselektiert mit Daten aus der DB?
Einklappen
X
-
ausm kopf ohne probieren könnte ich das nie
Einen Kommentar schreiben:
-
jetzt gehts!
PHP-Code:<?php
$options = array(1.33, 1.66, 1.78, 1.85, 2, 2.35, 2.4);
$sql = 'SELECT BILDV FROM DVDS WHERE ID = 113 LIMIT 1';
$ergebnis = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_array($ergebnis, MYSQL_ASSOC);
$option = $row['BILDV'];
echo '<select name="BILDV">';
echo '<option>Bitte wählen</option>';
foreach ($options as $val)
{
$val = number_format($val, 2, ',','');
$sel = $option == $val ? ' selected' : '';
echo '<option value="'.$val.'"'.$sel.'>'.$val.'</option>';
}
echo '</select>';
?>
puhh, danke mal an alle für die hilfe.
@abraxax:
sollte kein vorwurf oder irgendwas sein. ausm kopf ohne probieren könnte ich das nie
Einen Kommentar schreiben:
-
testausgabe gemacht?
hab den code jetzt nicht gelesen, aber könnte mir vorstellen, dass das mit (int) zu tun hat. (geraten) statt 2,35 wird dann einfach nur 2 == 2.00 genommen.
Einen Kommentar schreiben:
-
die ausgaben geht jetzt:
PHP-Code:echo '<option value="'.$val.'"'.$sel.'>'.number_format($val, 2, ',','').'</option>';
jetzt stimmt nur noch was mit dem vergleichen nicht.
soll 2,35 auswählen macht aber 2,00.
hmm, naja die nacht ist ja noch lang!
Einen Kommentar schreiben:
-
japp. wie gesagt ... habs einfach mal so hingeschrieben ohne zu testen ...
Einen Kommentar schreiben:
-
http://de3.php.net/manual/de/language.expressions.php
$option wird wohl nicht ordentlich gefüllt. aber du kannst ja mal selbst schauen, wie man die query gestalten soll und wie man alle ergebnisse in $option reinbekommt.
Einen Kommentar schreiben:
-
jap, mit den ganzen ifs ist es wirklich nicht besonders schön.
hab deinen code mal ausprobiert:
Warning: mysql_fetch_array() [function.mysql-fetch-array]: The result type should be either MYSQL_NUM, MYSQL_ASSOC or MYSQL_BOTH. in /opt/lampp/htdocs/list/dvdeditieren.php on line 268
PHP-Code:$row = mysql_fetch_array($ergebnis, MYSQL_FETCH_ASSOC);
funktioniert aber leider trotzdem nicht. die auswahlliste ist leer bis auf das "bitte wählen".
ich bin aber dahinter gestiegen wie das funktionieren soll nur kenne ich denn teil mit dem "?" und ":" nicht. kann damit irgendwie noch nix anfangen.
PHP-Code:$sel = $option == $val ? ' selected' : '';
Einen Kommentar schreiben:
-
für jeden wert ein eigenes if() ?
was ist, wenn wieder ein anderes bild-verhältnis vorhanden ist? dann alles wieder von vorne?
ich habe deinen code mal etwas umgeschrieben. schaue es dir an. vielleicht kannst du daraus erkennen, wie es in zukunft einfacher geht.
wenn du nun ein neues bild-verhältnis rein bekommst, brauchst du nur noch den neuen wert im array reinschreiben.
PHP-Code:<?php
$options = array(1.33, 1.66, 1.78, 1.85, 2, 2.35, 2.4);
$sql = 'SELECT BILDV FROM DVDS WHERE ID = 1 LIMIT 1';
$ergebnis = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_array($ergebnis, MYSQL_FETCH_ASSOC);
$option = $row['BILDV'];
echo '<select name="BILDV">';
echo '<option>Bitte wählen</option>';
foreach ($options as $val)
{
$sel = $option == $val ? ' selected' : '';
echo '<option value="'.$val.'"'.$sel.'>'.
number_format($val, 2, ',').'</option>'
}
echo '</select>';
?>
Einen Kommentar schreiben:
-
Funktioniert!
Hier mal mein Code falls es später noch jemand interessiert:
PHP-Code:$sql = "SELECT BILDV FROM DVDS WHERE ID = 1";
$ergebnis = mysql_query($sql);
$row = mysql_fetch_object($ergebnis);
$option = "$row->BILDV";
print "<select name=BILDV size=1>";
print "<option>Bitte wählen</option>";
if ($option=="1,33") { print "<option selected>1,33</option>"; }
else { print "<option>1,33</option>"; }
if ($option=="1,66") { print "<option selected>1,66</option>"; }
else { print "<option>1,66</option>"; }
if ($option=="1,78") { print "<option selected>1,78</option>"; }
else { print "<option>1,78</option>"; }
if ($option=="1,85") { print "<option selected>1,85</option>"; }
else { print "<option>1,85</option>"; }
if ($option=="2,00") { print "<option selected>2,00</option>"; }
else { print "<option>2,00</option>"; }
if ($option=="2,35") { print "<option selected>2,35</option>"; }
else { print "<option>2,35</option>"; }
if ($option=="2,40") { print "<option selected>2,40</option>"; }
else { print "<option>2,40</option>"; }
Einen Kommentar schreiben:
-
Olla!
Das sieht gut aus!!!
Danke Dir, probiers gleich mal aus.
Einen Kommentar schreiben:
-
php setzt ja nur deinen html-code zusammen. so müssen option-felder zeile für zeile folgendes konstrukt durchlaufen:Code:wenn (WERT == der_zu_selektierende) { gibtaus( "<option selected>WERT</option>") } sonst { gibtaus( "<option>WERT</option>") }
Einen Kommentar schreiben:
-
if($xy=="1,33") {echo('selected');}
if($xy=="1,66") {echo('selected');}
if($xy=="1,78") {echo('selected');}
...
Einen Kommentar schreiben:
-
Auswahlliste vorselektiert mit Daten aus der DB?
Schwere Threadtitel... sorry!
Ich habe folgenden HTML-code:
PHP-Code:<select name="BILDV" size="1">
<option>Bitte wählen</option>
<option>1,33</option>
<option>1,66</option>
<option>1,78</option>
<option>1,85</option>
<option>2,00</option>
<option>2,35</option>
<option>2,40</option>
</select>
Jetzt möchte ich falls ich was falsch ausgewählt habe das ganze nochmal editieren.
Es soll also beim klick auf einen Editieren-Link eine neue Seite starten wo die DB abgefragt wird und eben das was schon in der DB eingetragen ist VORSELEKTIERT in dieser Auswahlliste erscheint.
In HTML geht das normalerweise mit <option selected> aber ich weiß nicht wie ich das in PHP umsetzen soll das er mir auch das richtige auswählt.
Hoffe Ihr versteht was mein Problem ist und könnt mir nen Tipp geben.Stichworte: -
Einen Kommentar schreiben: