09. maj 2002 - 20:08
Der er
23 kommentarer og 1 løsning
<select>, <option> & MySQL
Jeg er igang med en movie database i php/mysql, men har et problem: Jeg har en side hvor der kan addes film med en combobox til at vælge format: <select name="format"> <option selected>DivX</option> <option>DVD</option> <option>VCD</option> <option>SVCD</option> <option>XVCD</option> <option>miniDVD</option> </select> Fint nok, det bliver så smidt over i MySQL, men jeg vil så ha en side hvor man kan rette disse oplysninger, men hvordan får jeg generet en combobox med det som den henter i MySQL som default ?? fx. hvis der i MySQL står at format = SVCD så skulle comboboxen på edit siden gerne se sådan ud: <select name="format"> <option>DivX</option> <option>DVD</option> <option>VCD</option> <option selected>SVCD</option> <option>XVCD</option> <option>miniDVD</option> </select> Skal jeg igang med den vilde switch eller if/else thingy ??
Annonceindlæg fra Kingston Technology
if($row[format] == "svcd") { $var = "selected"; } <option VALUE="x" $var>..... ellerr???
den skal jo tjekke hvilken value i format der er hentet i MySQL og så genere en combobox ud fra dette med format som default...
jeg kan ikke lige forstå hvad du mener.. men den laver en box med: $get = mysql_query("select * from noget order by noget limit 0,1"); print("<select name='fdf'>"); while($row = mysql_fetch_array($get)) { print("<option value='".$row[noget]."'>".$row[noget]."</option"); } print("</select>");
Kan bruges men alt for besværlig...nemmere måde ? switch ($row['format']) { case 'SVCD': print "<select name=\"format\">"; print "<option>DivX</option>"; print "<option>DVD</option>"; print "<option>VCD</option>"; print "<option selected>SVCD</option>"; print "<option>XVCD</option>"; print "<option>miniDVD</option>"; print "</select>"; break; case 'DVD': print "<select name=\"format\">"; print "<option>DivX</option>"; print "<option selected>DVD</option>"; print "<option>VCD</option>"; print "<option>SVCD</option>"; print "<option>XVCD</option>"; print "<option>miniDVD</option>"; print "</select>"; break; } osv. osv.
Slettet bruger
09. maj 2002 - 20:57
#5
websources.dk har fat i det rigtige....
Slettet bruger
09. maj 2002 - 20:58
#6
$get = mysql_query("select * from noget order by noget"); print("<select name='fdf'>"); while($row = mysql_fetch_array($get)) { if($row[format] == "svcd") { $var = "selected"; } print("<option value='".$row[noget]. $var ."'>".$row[noget]."</option"); } print("</select>");
men så skal man da lave en if for hver entry i comboboxen fx.: $get = mysql_query("select * from noget order by noget"); print("<select name='fdf'>"); while($row = mysql_fetch_array($get)) { if($row[format] == "svcd") { $var = "selected"; } if($row[format] == "divx") { $var = "selected"; } if($row[format] == "dvd") { $var = "selected"; } print("<option value='".$row[noget]. $var ."'>".$row[noget]."</option"); } print("</select>");
Slettet bruger
09. maj 2002 - 21:18
#8
Ja, men prøv nu lige at tænke :) Du laver jo en eller anden form for udtræk inden alt det her. Du har vel en bestemt post du gerne vil rette, som kunne være sådan her: $result = mysql_query("select * from noget_andet WHERE id = $id"); $raekke = mysql_fetch_array($result)); echo $raekke[overskrift]; $get = mysql_query("select * from noget order by noget"); print("<select name='fdf'>"); while($row = mysql_fetch_array($get)) { if($row[format] == "raekke[format]") { $var = "selected"; } print("<option value='".$row[noget]. $var ."'>".$row[noget]."</option"); } print("</select>");
Comboboxen ser sådan ud : <select name="format"> <option>DivX</option> <option>DVD</option> <option>VCD</option> <option>SVCD</option> <option>XVCD</option> <option>miniDVD</option> </select> men det er så valuen i $row['format'] der skal afgøre hvilken af dem der skal være default "<option selected>"...jeg håber at det er bedre forklaret
Slettet bruger
09. maj 2002 - 21:22
#10
Giv mig koden for hele den side hvor du vil rette, så skal jeg lave det for dig. Jeg ved godt det kan være lidt svært at forstå/forklare.
Slettet bruger
09. maj 2002 - 21:28
#12
PHP koden skal jeg bruge. Ellers skal du selv prøve at rette det jeg har givet dig.
som du kan i edit mode er det DivX der er valgt automatisk men med følgende kode : function print_format($default){ switch ($default) { case 'DivX': print "<select name=\"format\">"; print "<option selected>DivX</option>"; print "<option>DVD</option>"; print "<option>VCD</option>"; print "<option>SVCD</option>"; print "<option>XVCD</option>"; print "<option>miniDVD</option>"; print "</select>"; break; case 'DVD': print "<select name=\"format\">"; print "<option>DivX</option>"; print "<option selected>DVD</option>"; print "<option>VCD</option>"; print "<option>SVCD</option>"; print "<option>XVCD</option>"; print "<option>miniDVD</option>"; print "</select>"; break; case 'VCD': print "<select name=\"format\">"; print "<option>DivX</option>"; print "<option>DVD</option>"; print "<option selected>VCD</option>"; print "<option>SVCD</option>"; print "<option>XVCD</option>"; print "<option>miniDVD</option>"; print "</select>"; break; case 'SVCD': print "<select name=\"format\">"; print "<option>DivX</option>"; print "<option>DVD</option>"; print "<option>VCD</option>"; print "<option selected>SVCD</option>"; print "<option>XVCD</option>"; print "<option>miniDVD</option>"; print "</select>"; break; case 'XVCD': print "<select name=\"format\">"; print "<option>DivX</option>"; print "<option>DVD</option>"; print "<option>VCD</option>"; print "<option>SVCD</option>"; print "<option selected>XVCD</option>"; print "<option>miniDVD</option>"; print "</select>"; break; case 'miniDVD': print "<select name=\"format\">"; print "<option>DivX</option>"; print "<option>DVD</option>"; print "<option>VCD</option>"; print "<option>SVCD</option>"; print "<option>XVCD</option>"; print "<option selected>miniDVD</option>"; print "</select>"; break; } } og her er lidt at tablen : <td valign="top" align="left"><?php print_format($row['format']); ?></td>
men kunne man ikke lave et array med "DivX, DVD, SVCD, osv." i og så køre det igennem en løkke ?
Slettet bruger
09. maj 2002 - 21:33
#15
Du henter med andre ord ikke mulighederne fra en database? Så kan du bruge det jeg har på min side: <tr><td align=right>Type:</td><td><SELECT name="typen" style="width: 200px"> <option value="3ivX" <?PHP if ($row[type] == '3ivX') { echo "selected"; } ?>>3ivX</option> <option value="ASF" <?PHP if ($row[type] == 'ASF') { echo "selected"; } ?>>ASF</option> <option value="DAT" <?PHP if ($row[type] == 'DAT') { echo "selected"; } ?>>DAT</option> <option value="DivX" <?PHP if ($row[type] == 'DivX') { echo "selected"; } ?>>DivX</option> <OPTION VALUE="DivXXX" <?PHP if ($row[type] == 'DivXXX') { echo "selected"; } ?>>DivXXX</OPTION> <option value="DVD" <?PHP if ($row[type] == 'DVD') { echo "selected"; } ?>>DVD</option> <option value="M2V" <?PHP if ($row[type] == 'M2V') { echo "selected"; } ?>>M2V</option> <option value="MOV" <?PHP if ($row[type] == 'MOV') { echo "selected"; } ?>>MOV</option> <option value="MPEG" <?PHP if ($row[type] == 'MPEG') { echo "selected"; } ?>>MPEG</option> <option value="RAM" <?PHP if ($row[type] == 'RAM') { echo "selected"; } ?>>RAM</option> <option value="SMR" <?PHP if ($row[type] == 'SMR') { echo "selected"; } ?>>SMR</option> <option value="SVCD" <?PHP if ($row[type] == 'SVCD') { echo "selected"; } ?>>SVCD</option> <option value="VCD" <?PHP if ($row[type] == 'VCD') { echo "selected"; } ?>>VCD</option> <option value="WMV" <?PHP if ($row[type] == 'WMV') { echo "selected"; } ?>>WMV</option> <option value="XVCD" <?PHP if ($row[type] == 'XVCD') { echo "selected"; } ?>>XVCD</option> </SELECT></td> </tr> Det er lidt grimt, men det er eneste mulighed når du ikke henter mulighederne fra databasen.
Slettet bruger
09. maj 2002 - 21:34
#16
Det med array kunne man godt.
det er nemlig det jeg ikke gør! så fik vi det på plads ;)
Jeg ville bare lave en function der var lidt nemmere end den med case...forslag hvordan det kunne laves med en array løkke ?
Slettet bruger
09. maj 2002 - 23:41
#19
<select name="format"> <?PHP $array[] = "SVCD, DVD, osv"; $antal = count($array); for ($i = 0; $i < $antal;$i++) { echo '<option value="$array[$i]"'; if($row[format] == $array[$]) { echo " selected"; } echo ">"$array[$i]</option>"; }?> </select> Alt sammen utestet *G*
Slettet bruger
09. maj 2002 - 23:47
#20
Denne her har ikke de 27 fejl: <select name="format"> <?PHP $row[format] = "DVD"; $array = array ("SVCD","DVD","DivX"); $antal = count($array); $i = 0; while ($i < $antal) { echo '<option value="' . $array[$i] . '"'; if($row[format] == $array[$i]) { echo " selected"; } echo ">$array[$i]</option>"; $i++; }?> </select>
Det er sq iorden...det funker ! takker..og el barto hvis du vil ha dine 60 point så opret lige et svar ;)
Slettet bruger
10. maj 2002 - 00:09
#22
:) Det tog jo lidt tid at få på plads!
Slettet bruger
10. maj 2002 - 00:13
#23
Tak for det :)
Sådan! Gjorde lige koden mere "overskuelig" ;) function print_format($format){ echo "<select name=\"format\">\n"; $array = array("DivX","DVD","VCD","SVCD","XVCD","miniDVD"); $antal = count($array); $i = 0; while ($i < $antal) { echo "<option "; if($format == $array[$i]) { echo "selected "; } echo "value=\"".$array[$i]."\">$array[$i]</option>\n"; $i++; } echo "</select>\n"; } hvis nogen skulle få lyst til at bruge det ;)
Vi tilbyder markedets bedste kurser inden for webudvikling