09. januar 2004 - 21:42
Der er
22 kommentarer og 1 løsning
Dropdown i php
Hej Jeg skal have lavet en dropdown, som indeholder et antal byer. Alt efter, hvilken by der bliver valgt, skal sql'en søge efter de poster der er under den pågældende by. Det må være noget med select....where...=...... (Jeg ved ikke, om det er smartest, at dropdown menuen bilver bygget på baggrund af noget sql) I første om gang kunne jeg godt tænke mig at se et simpelt eksempel på, hvordan man kan bygge en almindelig drop down sammen med en forespørgsel på det valgte. /Martin
Annonceindlæg fra Cognizant
AI er ikke problemet. Eksekvering er.
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
09. januar 2004 - 21:52
#1
<html> <body> <? $conn = mysql_connect("host", "bruger", "pass"); mysql_select_db("database"); $result = mysql_query("SELECT * FROM tabel WHERE by='$_POST[by]"); //udskrift ?> <form id="form" method="post" action="#"> <select name="by" onChange="document.getElementById('form').submit();> <option value="Holstebro">Holstebro</option> <option value="Herning">Herning</option> <option value="Ikast">Ikast</option> </select> </form> </body> </html>
09. januar 2004 - 21:54
#2
Rettelse: <html> <body> <? if($_POST[by]) { $conn = mysql_connect("host", "bruger", "pass"); mysql_select_db("database"); $result = mysql_query("SELECT * FROM tabel WHERE by='$_POST[by]"); //udskrift } ?> <form id="form" method="post" action="#"> <select name="by" onChange="document.getElementById('form').submit();> <option value="Holstebro">Holstebro</option> <option value="Herning">Herning</option> <option value="Ikast">Ikast</option> </select> </form> </body> </html>
09. januar 2004 - 21:59
#3
- mangler vidst et " tegn i slutningen af <select> linien
09. januar 2004 - 22:15
#4
Vil du lave en dropdown boks ud fra en database forespørgsel, kan du gøre: <? $conn = mysql_connect("host", "bruger", "pass"); mysql_select_db("database"); $query = mysql_query("SELECT by FROM tabel"); ?> <select name="by"> <? while($row = mysql_fetch_array($query)) { echo "<option value='$row[by]'>$row[by]</option>"; } ?> </select>
09. januar 2004 - 22:40
#5
Jeg får Notice: Use of undefined constant byvalg - assumed 'byvalg' in c:\inetpub\wwwroot\ovelokaler2004\byvalg1.php on line 6 Notice: Undefined index: byvalg in c:\inetpub\wwwroot\ovelokaler2004\byvalg1.php on line 6 i jacobclausens andet svar. Jeg har erstattet "by" med "byvalg" Skal der så stå onChange="document.getElementByvalgId('form').submit();"> ? Jeg skal vel lave en form for mysql_fetch_array for at vise posterne ? /Martin
09. januar 2004 - 22:42
#6
ok, det erførste var vist fordi der manglede '' ved if($_POST[by])
09. januar 2004 - 22:47
#7
virker det ?
09. januar 2004 - 22:49
#8
Nej getElementByID er en funktion i JavaScript og det skal den hedde uanset hvad, det eneste du kan komme ud for at skulle rette er form - det er navnet på formen
09. januar 2004 - 22:51
#9
while($row = mysql_fetch_array($result)) { echo $row[tabel] . "<br"; } Vil du skrive resultatet af din forespørgsel på en liste
09. januar 2004 - 22:58
#10
Jeg får: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\inetpub\wwwroot\ovelokaler2004\byvalg1.php on line 20 Linie 20: while($row = mysql_fetch_array($result)) Koden i sin helhed: <html> <body> <? include ("conn.php"); function query($sql){ $result = mysql_query($sql) or die("MYSQL-error:<br>Query: $sql<br>\n Error: ".mysql_errno().": ".mysql_error()); return $result; } if($_POST['byvalg']) { $result = mysql_query("SELECT * FROM tabel WHERE byvalg='$_POST[byvalg]"); while($row = mysql_fetch_array($result)) { echo $row[tabel] . "<br"; } // Kør så igennem for hver række //while ($raekke = mysql_fetch_array($result)) { //echo $raekke[0]; //udskrift } ?> <form id="form" method="post" action="#"> <select name="byvalg" onChange="document.getElementById('form').submit();"> <option value="Holstebro">Holstebro</option> <option value="Herning">Herning</option> <option value="Ikast">Ikast</option> </select> </form> </body> </html>
09. januar 2004 - 23:01
#11
Det er lidt svært at hjælpe dig, med alt det ekstra kode du har tilføjet.
09. januar 2004 - 23:02
#12
ok, jeg kigger lige på det
09. januar 2004 - 23:04
#13
Dette virker fint for mig. Jeg vælger en by og får resultatet skrevet ud på en liste: <html> <body> <? if($_POST[by]) { $conn = mysql_connect("host", "bruger", "pass"); mysql_select_db("database"); $result = mysql_query("SELECT * FROM tabel WHERE by='$_POST[byvalg]"); while($row = mysql_fetch_array($result)) { echo $row[by] . "<br>"; } } ?> <form id="form" method="post" action="#"> <select name="byvalg" onChange="document.getElementById('form').submit();"> <option value="Holstebro">Holstebro</option> <option value="Herning">Herning</option> <option value="Ikast">Ikast</option> </select> </form> </body> </html>
09. januar 2004 - 23:06
#14
Der skal selvfølgelig stÅ: if($_POST[byvalg])
09. januar 2004 - 23:07
#15
Jeg får: Notice: Undefined index: byvalg ved if($_POST['byvalg']) Når jeg vælger en by får jeg: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
09. januar 2004 - 23:09
#16
Skyldes nok at du har en nyere php version end den jeg kører med, for der er absolut ingen problemer her hos mig
09. januar 2004 - 23:10
#17
ok, nu er der kun: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
09. januar 2004 - 23:17
#18
ok, der manglede en ' efter '$_POST[byvalg]'. Nu står der: Notice: Undefined index: tabel ved echo $row['tabel'] . "<br"; (den brokker sig, hvis der ikke er '' omkring tabel).
09. januar 2004 - 23:31
#19
09. januar 2004 - 23:32
#20
Det med at der SKAL være " rundt om er fordi du bruger den aller nyeste version, det er ikke til at finde ud af mere.
09. januar 2004 - 23:37
#21
Ok fedt! Nu virker det. - bare ikke ved holstebro Jeg gætter på, at det er fordi det er den øverste ? /Martin
09. januar 2004 - 23:39
#22
Til jacobclausen Jeg siger mange tak for dine svar og din tålmodighed :-) Hilsen Martin
09. januar 2004 - 23:41
#23
bas >> Ja nemlig, derfor jeg har lavet en "vælg by" der er selected. Så lidt, jeg takker også!
Vi tilbyder markedets bedste kurser inden for webudvikling