29. april 2006 - 12:30
Der er
36 kommentarer og 1 løsning
Søg i Mysql via rulleliste
Nedenstående Sql søgning virker fint nok. Den finder alt i tabellen. Rullelisten har jeg lige lagt på men strandede så alligevel. Ideen er at man vælger en kategori på rullelisten og så vises listen nedenunder som jeg allerede har kodet blot kun de af opskrifterne der f.eks. er hovedretter. Altså noget i stil med: $foresp = mysql_query(" SELECT * FROM opskrift WHERE type = "indholdet af rullelisten" ORDER BY navn"); Men hvordan gør jeg lige det ? ----------------------------------------- <select size="1" name="type" tabindex="2" style="font-family: Verdana; font-size: 10pt"> <option value="Hovedret">Hovedret</option> <option value="Dessert">Dessert</option> <option value="Tilbehør">Tilbehør</option> <option value="Kage">Kage</option> </select></a> <? $foresp = mysql_query(" SELECT * FROM opskrift ORDER BY navn"); echo "<font face='Verdana' size='1'>"; while($data = mysql_fetch_row($foresp)){ bla bla bla } ?>
Annonceindlæg fra Cognizant
29. april 2006 - 13:02
#1
jeg vil skyde på en $foresp = mysql_query(" SELECT * FROM opskrift WHERE type = ".$_GET['type']." ORDER BY navn");
29. april 2006 - 13:05
#2
Alt efter om din method er GET eller POST ellers kan du bruge $_REQUEST['type'] den leder efter variablen på begge metoder.
29. april 2006 - 13:05
#3
Måske mulighed for alle: <select size="1" name="type" tabindex="2" style="font-family: Verdana; font-size: 10pt"> <option value="Alle">Alle</option> <option value="Hovedret">Hovedret</option> <option value="Dessert">Dessert</option> <option value="Tilbehør">Tilbehør</option> <option value="Kage">Kage</option> </select></a> Sammen med $sql = "SELECT * FROM opskrift "; if ( !empty( $_GET['type'] ) && $_GET['type'] != 'Alle' ) { $sql .= "WHERE `type` = '" . mysql_escape_string( $_GET['type'] ) . "' "; } $sql .= "ORDER BY navn"; $foresp = mysql_query($sql) or die( mysql_error() );
29. april 2006 - 13:19
#4
Coderdk's er den der virker bedst so far men jeg har nok kludret lidt i det, for jeg har jo bare lavet rullelisten. Skal den "pakkes" ind i en form ?
29. april 2006 - 13:48
#5
Ind til videre sker der ikke noget. Rulelisten vises og "Alle" er også med. Men der sker intet når jeg vælger de forskellige typer...
29. april 2006 - 13:50
#6
Ja det skal pakkes ind i en form, så du kan submitte ;D ellers skal der noget javascript til så den submitter når man vælger.
29. april 2006 - 13:52
#7
<form name="selectType" method="GET" action="minfilmedkode.php"> <select size="1" name="type" tabindex="2" style="font-family: Verdana; font-size: 10pt"> <option value="Alle">Alle</option> <option value="Hovedret">Hovedret</option> <option value="Dessert">Dessert</option> <option value="Tilbehør">Tilbehør</option> <option value="Kage">Kage</option> </select> <input type="submit" value="vælg type"> </form>
29. april 2006 - 14:01
#8
Ahhh... Nu hjælper det :o)) Det virker nu med Fjappe's form som udgangspunkt. Dog opdagede jeg et par fejl. I databasen er der endnu ikke oprettet en dessert og hvis jeg i rullelisten vælger netop dessert, så bliver hele siden væltet helt. Kan man evt. vælge at der enten bliver vist ingenting i listen eller også bare alle ? Listen der vises bruger jeg til at åbne de forskellige opskrifter med. Men når jeg klikker på f.eks. en hovedret, ja så vises retten men listen sættes også automatisk til Alle igen. Kan den ikke blive i den kategori jeg vælger indtil andet ønskes ? Jeg smider lige lidt flere points indd nu hvor spørgsmålet er "vokset" lidt :o))
29. april 2006 - 15:26
#9
Jeg har løst det ved at inkludere en lille menu.php og så plukke derfra. Sikkert ikke den optimale løsning men det virker :o)) <select onChange="if(this.selectedIndex!=0)location.href=this.value;"> <option value="index.php?kat_submitted=Hovedret">Vælg</option> <option value="index.php?kat_submitted=alle">Alle</option <option value="index.php?kat_submitted=Dessert">Dessert</option> <option value="index.php?kat_submitted=Hovedret">Hovedret</option> <option value="index.php?kat_submitted=tilbehør">Tilbehør</option> </select> Smid svar begge 2, I hjalp mig jo på vej :o)
29. april 2006 - 15:29
#10
Godt du fik det til at virke :D
29. april 2006 - 15:44
#11
argg... troede jeg...
29. april 2006 - 15:45
#12
Listen vises fint nok men det virker ikke når jeg klikker på de forskellige opskrifter...
29. april 2006 - 15:47
#13
må jeg se noget mere kode ? :D så skal jeg lige kigge på det
29. april 2006 - 15:53
#14
Jeg roder lige... Jeg er muligvis ved at ha den men det ersq nok fordi min kode er temmelig homemade :o))
29. april 2006 - 15:58
#15
Det lykkedes. Eneste minus er at rullelisten resetter hvergang man har klikket på en opskrift. Altså den returnerer til "Vælg"...
29. april 2006 - 16:40
#16
Du skal få php til at skrive <option value="index.php?kat_submitted=Hovedret" selected>Hovedret</option> Hvis f.eks. det er hovedret der er valgt.
29. april 2006 - 17:16
#17
Jeg misforstår nok. Jeg prøvede det her men det hjalp ikke... <select onChange="if(this.selectedIndex!=0)location.href=this.value;"> <option value="Vælg" selected>Vælg</option> <option value="index.php?kat_submitted=Dessert" selected>Dessert</option> <option value="index.php?kat_submitted=Hovedret" selected>Hovedret</option> <option value="index.php?kat_submitted=tilbehør"selected>Tilbehør</option> <option value="index.php?kat_submitted=alle"selected>Alle</option </select>
29. april 2006 - 17:19
#18
ja det gør du :D Lad os nu sige at hovedret er valgt i rullemenuen - så skal selecten se sådan her ud: <select onChange="if(this.selectedIndex!=0)location.href=this.value;"> <option value="index.php?kat_submitted=Hovedret">Vælg</option> <option value="index.php?kat_submitted=alle">Alle</option <option value="index.php?kat_submitted=Dessert">Dessert</option> <option value="index.php?kat_submitted=Hovedret" selected>Hovedret</option> <option value="index.php?kat_submitted=tilbehør">Tilbehør</option> </select>
29. april 2006 - 17:29
#19
Prøv med denne switch sætning. switch ($_GET['kat_submitted']) { case 'alle': echo "<select onChange=\"if(this.selectedIndex!=0)location.href=this.value;\"> <option value=\"Vælg\">Vælg</option> <option value=\"index.php?kat_submitted=alle\" selected>Alle</option <option value=\"index.php?kat_submitted=Dessert\">Dessert</option> <option value=\"index.php?kat_submitted=Hovedret\">Hovedret</option> <option value=\"index.php?kat_submitted=tilbehør\">Tilbehør</option> </select>"; break; case 'Dessert': echo "<select onChange=\"if(this.selectedIndex!=0)location.href=this.value;\"> <option value=\"Vælg\">Vælg</option> <option value=\"index.php?kat_submitted=alle\">Alle</option <option value=\"index.php?kat_submitted=Dessert\" selected>Dessert</option> <option value=\"index.php?kat_submitted=Hovedret\">Hovedret</option> <option value=\"index.php?kat_submitted=tilbehør\">Tilbehør</option> </select>"; break; case 'Hovedret': echo "<select onChange=\"if(this.selectedIndex!=0)location.href=this.value;\"> <option value=\"Vælg\">Vælg</option> <option value=\"index.php?kat_submitted=alle\">Alle</option <option value=\"index.php?kat_submitted=Dessert\">Dessert</option> <option value=\"index.php?kat_submitted=Hovedret\" selected>Hovedret</option> <option value=\"index.php?kat_submitted=tilbehør\">Tilbehør</option> </select>"; break; case 'tilbehør': echo "<select onChange=\"if(this.selectedIndex!=0)location.href=this.value;\"> <option value=\"Vælg\">Vælg</option> <option value=\"index.php?kat_submitted=alle\">Alle</option <option value=\"index.php?kat_submitted=Dessert\">Dessert</option> <option value=\"index.php?kat_submitted=Hovedret\">Hovedret</option> <option value=\"index.php?kat_submitted=tilbehør\" selected>Tilbehør</option> </select>"; break; default: echo "<select onChange=\"if(this.selectedIndex!=0)location.href=this.value;\"> <option value=\"Vælg\" selected>Vælg</option> <option value=\"index.php?kat_submitted=alle\">Alle</option <option value=\"index.php?kat_submitted=Dessert\">Dessert</option> <option value=\"index.php?kat_submitted=Hovedret\">Hovedret</option> <option value=\"index.php?kat_submitted=tilbehør\">Tilbehør</option> </select>"; };
29. april 2006 - 17:29
#20
Og den sætning kan selvfølgelig godt optimeres en del ;D - men det skulle lige gå lidt tjept hehe.
29. april 2006 - 17:33
#21
:o)) ja, jeg fatter lige præcis ikke en snus længere. Måske er det her det går galt. Den liste der kommer frem afhængig af hvad der er valgt som type ser sådan her ud: <td height="10"><font face="Verdana" size="1"><a onmouseover="return overlib('<?echo $data[2].'<br>Klik for at åbne'?>', AUTOSTATUS, WRAP);" onmouseout="nd();" class="m" target="_top" href="index.php?ID_submitted=<?echo $data[0]?>"><?echo $data[1]?></a> Kan det være den linie der gør det, for det er jo når jeg klikker dér at rullelisten nulstilles ?
29. april 2006 - 17:34
#22
hov.. læser lige dit sidste indlæg...
29. april 2006 - 17:39
#23
Og husk nu at det er case sensitive. :D - bare lige en reminder. dvs. hovedret skal skrives med stort i querystringen ?kat_submitted=Hovedret - ellers bliver den ikke fanget af switch'en - men du kan selvfølgelig bare sørge for at de alle er med små bogstaver så er det hele lidt nemmere :D
29. april 2006 - 17:42
#24
Jeg har styr på case sensitive. De forskellige opskrifter bliver også fundet når jeg klikker på dem i listen. Det eneste jeg vil undgå er at rullelisten bliver til "vælg" hvergang jeg har klikket på en af opskrifterne. Og den gør det stadigvæk til trods for din kode foroven. Men jeg tror altså også at jeg har fået mixet det hele godt og grundigt sammen efterhånden... :o))
29. april 2006 - 17:44
#25
Så lad mig se noget mere kode :D - så kan jeg godt prøve at se om jeg kan få det til at virke.
29. april 2006 - 17:51
#26
Her er index.php Rullemenuen er den inkluderede menu.php. At den er ekstern var bare mit forsøg på at få det til at virke. Hav tålmodighed for jeg har nok lavet total ged i den :o)) <? $kategori = $kat_submitted; echo $kategori; ?> <script type="text/javascript" src="overlibmws.js"></script> <a name="Top"> <head> <meta http-equiv="Content-Language" content="da"> </head> <script language="javascript" type="text/javascript"> function popWin(file){ newWin=window.open("","","width=300,height=200,status=no, location=no,copyhistory=no, menu=no"); txt='<ht'+'ml><he'+'ad><ti'+'tle><\57ti'+'tle><scri'; txt+='pt language="javascript" type="text/javascript">'; txt+='function resPic(){h=document.images[0].scrollHeight;'; txt+='w=document.images[0].scrollWidth;hm=screen.availHeight-32;wm=screen.availWidth-6;'; txt+='if(h>hm){w=w*hm/h;h=hm;document.images[0].style.width=w+"px";document.images[0].style.height=h+"px";};' txt+='if(w>wm){h=h*wm/w;w=wm;document.images[0].style.width=w+"px";document.images[0].style.height=h+"px";};' txt+='window.resizeTo(w+6,h+54);window.moveTo((screen.availWidth-w-6)/2,(screen.availHeight-h-54)/2)}<\57scri'; txt+='pt><\57he'+'ad><bo'+'dy style="overflow:hidden;'; txt+='border:0px;margin:0px"><i'+'mg src="'+file+'" style="top:0px;left:0px;border:0px;'; txt+='" onload="resPic();" onclick="self.close()" title="Tryk for at lukke vinduet"><\57bo'+'dy><\57ht'+'ml>'; newWin.document.write(txt); newWin.document.close(); } </script> <style> <!-- m { font-family: Verdana; font-size: 8pt; color:#000066; font-weight:bold} :link.m{color: #000066;text-decoration: none;} :visited.m{color: #000099;text-decoration: none;} :active.m{color: #CC0000;text-decoration: none;} :hover.m{color: #CC0000;text-decoration: underline;font-weight:bold} .Text { font-size: 11px; font-family: Verdana, Helvetica, Sans-Serif; } --> </style> <? $db = mysql_connect("xxx", "xxx", "xxx"); mysql_select_db("xxx", $db); ?> <table border="0" width="975" cellpadding="0" id="table1" style="border-collapse: collapse" height="343"> <tr> <td style="border: 1px solid #000000" height="25" bgcolor="#006600" width="852"><b> <font face="Verdana" size="2" color="#FFFFFF"> </a>Medlemsopskrifter (beta version)</font></b></td> <td style="border: 1px solid #000000" height="25" bgcolor="#006600" width="120"> <p align="center"><font face="Verdana" size="1" color="#FFFFFF">© xxxxxx.com 2006</font></td> </tr> <tr> <td style="border: 1px solid #000000" align="left" valign="top" height="319" bgcolor="#FFCC00" colspan="2"> <? if ($ID_submitted < " ") { $ID_submitted = "1"; } ?> <TITLE>medlemsopskrift (<?echo $data[1]?>) </TITLE> <table border="0" width="100%" cellpadding="0" style="border-collapse: collapse" id="table2"> <tr> <td width="243" align="left" valign="top" style="border-left-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-right-style:solid" bgcolor="#DFE0E5" rowspan="7"> <?include ("menu.php")?> <br> <?echo "<font face='Verdana' size='1'><b>".ucwords($kat_submitted)?></b> <div id="liste" style=" bgcolor: #FFFFCC height: "100%"; overflow: auto; width:243px"> <? if ($kategori == ""){ $kategori="alle"; } if ($kategori == "alle"){ $foresp = mysql_query(" SELECT * FROM opskrift ORDER BY navn"); }else{ $foresp = mysql_query(" SELECT * FROM opskrift WHERE type='$kategori' ORDER BY navn"); } echo "<font face='Verdana' size='1'>"; while($data = mysql_fetch_row($foresp)){ ?> <table border="0" height="16" width="240" style="border-collapse: collapse" id="table3"> <tr> <td height="10"><font face="Verdana" size="1"><a onmouseover="return overlib('<?echo $data[2].'<br>Klik for at åbne'?>', AUTOSTATUS, WRAP);" onmouseout="nd();" class="m" target="_top" href="index.php?ID_submitted=<?echo $data[0]?>"><?echo $data[1]?></a> </td> </tr> <? } ?> </table> </div> <? $foresp = mysql_query(" SELECT * FROM opskrift WHERE ID=$ID_submitted ORDER BY navn"); while($data = mysql_fetch_row($foresp)){ ?> </td> <td width="4" align="left" valign="top" style="border-left-width: 1px; border-right-width: 1px; border-top-style: solid; border-top-width: 1px; border-bottom-width: 1px; border-left-style:solid" bgcolor="#FFFF99"> </td> <td width="159" align="left" valign="top" style="border-right-width: 1px; border-top-style: solid; border-top-width: 1px; border-bottom-width: 1px; " bgcolor="#FFFF99"> <font face="Verdana" size="2">Opskrift nr. <?echo $data[0]?></font></td> <td align="left" valign="top" style="border-bottom:1px solid #000000; border-left-width: 1px; border-right-width: 1px; " bgcolor="#FFFF99" width="600"><font face="Verdana" size="2"><?echo "<b>".$data[1]?></font></td> </tr> <tr> <td width="4" align="left" valign="top" bgcolor="#FFFF99" style="border-left-style: solid; border-left-width: 1px; border-right-width: 1px; border-top-width: 1px; border-bottom-width: 1px"> </td> <td width="159" align="left" valign="top" bgcolor="#FFFF99" style="border-right-width: 1px; border-top-width: 1px; border-bottom-width: 1px"><font face="Verdana" size="2"> Type</font></td> <td align="left" valign="top" style="border-left-width: 1px; border-right-width: 1px; border-top-width: 1px; " bgcolor="#FFFF99" width="600"><font face="Verdana" size="2"><?echo $data[2]?></font></td> </tr> <tr> <td width="4" align="left" valign="top" bgcolor="#FFFF99" style="border-left-style: solid; border-left-width: 1px; border-right-width: 1px; border-top-width: 1px; border-bottom-width: 1px"> </td> <td width="159" align="left" valign="top" bgcolor="#FFFF99" style="border-right-width: 1px; border-top-width: 1px; border-bottom-width: 1px"> <font face="Verdana" size="2">Ingredienser</font></td> <td align="left" valign="top" style="border-left-width: 1px; border-right-width: 1px; border-top-width: 1px; border-bottom-style: solid; border-bottom-width: 1px" bgcolor="#FFFF99" width="600"> <font face="Verdana" size="1"><?echo nl2br($data[3])."<br><br>"?></font></td> </tr> <tr> <td width="4" align="left" valign="top" bgcolor="#FFFF99" style="border-left-style: solid; border-left-width: 1px; border-right-width: 1px; border-top-width: 1px; border-bottom-width: 1px"> </td> <td width="159" align="left" valign="top" bgcolor="#FFFF99" style="border-right-width: 1px; border-top-width: 1px; border-bottom-width: 1px"><font face="Verdana" size="2"> Fremgangsmåde</font></td> <td align="left" valign="top" style="border-left-width: 1px; border-right-width: 1px; border-top-width: 1px; border-bottom-style: solid; border-bottom-width: 1px" bgcolor="#FFFF99" width="600"> <font face="Verdana" size="1"><?echo nl2br($data[4])."<br><br>"?></font></td> </tr> <tr> <td width="4" align="left" valign="top" bgcolor="#FFFF99" style="border-left-style: solid; border-left-width: 1px; border-right-width: 1px; border-top-width: 1px; border-bottom-width: 1px"> </td> <td width="159" align="left" valign="top" bgcolor="#FFFF99" style="border-right-width: 1px; border-top-width: 1px; border-bottom-width: 1px"><font face="Verdana" size="2"> Kommentar</font></td> <td align="left" valign="top" style="border-left-width: 1px; border-right-width: 1px; border-top-width: 1px; border-bottom-style: solid; border-bottom-width: 1px" bgcolor="#FFFF99" width="600"> <font face="Verdana" size="1"><?echo nl2br ($data[5])."<br><br>"?></font></td> </tr> <tr> <td width="4" align="left" valign="top" bgcolor="#FFFF99" height="179" style="border-left-style: solid; border-left-width: 1px; border-right-width: 1px; border-top-width: 1px; border-bottom-width: 1px"> </td> <td width="159" align="left" valign="top" bgcolor="#FFFF99" height="179" style="border-right-width: 1px; border-top-width: 1px; border-bottom-width: 1px"><font face="Verdana" size="2"> Billeder</font></td> <td align="left" valign="top" bgcolor="#FFFF99" width="600" height="179"><font face="Verdana" size="2"> <? if ($data[7] > ""){ ?> <a onmouseover="return overlib('Klik for at åbne billede', CAPTION, '<?echo $data[7]?>', WRAP, RIGHT, 'tooltip');" onmouseout="nd();" onclick="popWin('<?echo $data[7]?>');return false;"><img src="<?echo $data[7]?>" width="144" style="border: 1px solid #000000; " alt=""href="<?echo $data[7]?>" align="left" vspace="3"></a><span lang="da"> <? } ?> <? if ($data[8] > ""){ ?> <a onmouseover="return overlib('Klik for at åbne billede', CAPTION, '<?echo $data[8]?>', WRAP, RIGHT, 'tooltip');" onmouseout="nd();" onclick="popWin('<?echo $data[8]?>');return false;"><img src="<?echo $data[8]?>" width="144" style="border: 1px solid #000000; " alt=""href="<?echo $data[8]?>" align="left" vspace="3"></a> <? } ?> <? if ($data[9] > ""){ ?> <a onmouseover="return overlib('Klik for at åbne billede', CAPTION, '<?echo $data[9]?>', WRAP, RIGHT, 'tooltip');" onmouseout="nd();" onclick="popWin('<?echo $data[9]?>');return false;"><img src="<?echo $data[9]?>" width="144" style="border: 1px solid #000000; " alt=""href="<?echo $data[9]?>" align="left" vspace="3"></a> <? } ?> </font></td> </tr> <tr> <td align="left" bgcolor="#DFE0E5" height="32" colspan="3"><input name="button1" type='button' value='Udskriv' onClick="java script:void(window.open('udskriv.php?ID_submitted=<?echo $data[0]?>','maxi','width=800,height=600,scrollbars=1,status=0'));"> <input name="knap2" type='button' value='Gem opskriften' onClick="java script:void(window.open('gem_til_disk.php?ID_submitted=<?echo $data[0]?>','maxi','width=800,height=600,scrollbars=1,status=1, menubar=1'));"> <input name="knap3" type='button' value='Til toppen' onClick="window.location = '#top'"> </tr> </table> </td> </tr> </table> <? } ?>
29. april 2006 - 17:56
#27
Har du et sted hvor jeg kan se koden i funktion ?
29. april 2006 - 18:24
#28
har du en mail, så sender et link ?
29. april 2006 - 18:26
#29
du kan sende til hurlumhej 'det der mærkelige snabel aaa' fjappe.dk
29. april 2006 - 18:36
#30
er sendt..
29. april 2006 - 18:44
#31
hmm jeg har ikke modtaget den :(
29. april 2006 - 18:47
#32
jo du har for jeg har lige modtaget kvittoen :o))
29. april 2006 - 18:51
#34
<td height="10"><font face="Verdana" size="1"><a onmouseover="return overlib('<?echo $data[2].'<br>Klik for at åbne'?>', AUTOSTATUS, WRAP);" onmouseout="nd();" class="m" target="_top" href="index.php?ID_submitted=<?echo $data[0]?>&kat_submitted=<?echo $kat_submitted?>"><?echo $data[1]?></a> </td>
29. april 2006 - 19:01
#35
For hunne da..... Det er da klart. Nu virker det :o))
29. april 2006 - 19:01
#36
Tusind tak for hjælpen :o)
29. april 2006 - 19:04
#37
Selv tak :D - takker for point. Fortsat god kodning hehe og weekend :D
Vi tilbyder markedets bedste kurser inden for webudvikling