12. juli 2007 - 14:08
Der er
15 kommentarer og 1 løsning
SELECT * FROM - tabel afhængig af dropdown?
Hej. Jeg har 2 dropdown-bokse hvor nr. 2 skal være afhængig af den første. Den første er ikke sql-baseret men det er den anden derimod. Det man vælger i den første dropdownboks er hvilken sql-tabel boks2 skal vise info fra. Den første boks er således: <SELECT NAME='tabelvalg'> <OPTION value='tabel1'>Tabel 1</option> <OPTION value='ltabel2'>Tabel 2</option> </select> og der skal den så tage den valgte value og indsætte i SELECT * FROM ->value fra boks 1<- Hvor boks2 så viser indholdet af den tabel. Håber det er til at forstå. Ser frem til jeres svar ps. Jeg vidste ikke, om jeg skulle placere mit spg. i SQL, PHP eller denne kategori, da jeg formentlig skal bruge alle 3.
Annonceindlæg fra Computerworld it-jobbank
Mød 3.500+ it-talenter på IT-DAY 2026
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
<ole> Princippet er: <form action="<?=$_SERVER["PHP_SELF"]?>" method="post"> <SELECT NAME='tabelvalg' onchange="this.form.submit()"> <OPTION value=-1>Vælg ...</option> <OPTION value='tabel1'>Tabel 1</option> <OPTION value='ltabel2'>Tabel 2</option> </select> </form> - og så henter du data og udskriver den anden select udfra værdien af $_POST["tabelvalg"]; /mvh </bole>
Jeg glemte vist at skrive, at det skal foregå dynamisk i samme side. Jeg beklager. Dit princip bygger på at siden loades en gang til, ik?
Jo. Skal det laves dynamisk, bør det nok laves med AJAX - men da det kræver _virkelig_ god progammatisk indsigt, er det ikke noget, jeg umiddelbart vil råde dig til. AJAX er der ikke ret mange andre end Google, der behersker bare nogenlunde :o|
Hvormange muligheder er der for den anden select? Er der mulighed for at smide dem med ned i et JavaScript-array?
Det skal jeg desværre ikke kunne sige, da jeg ikke er speciel stærk på området. Kan du evt. forklare spørgsmålet lidt mere detaljeret?
Tak for linket roenving - jeg har godt kigget de fleste tråde igennem vedr. det her emne, dog må jeg have misset den :) Jeg tror jeg vælger den "nemme" løsning ved at droppe at den anden boks skal være database-basseret. Hertil har jeg så et spg.: Kan man definere en value for de forskellige valg ved den kode du postede i det link: models[models.length] = ["234","235","224","24","4","5"]; models[models.length] = ["245","247","C23","Q13","645"]; models[models.length] = ["323","626","929"]; således at hvis man vælger C23 så læser den det faktisk som "1"?
<option value="1">C23</option> ?
Ja den ville jeg også have burgt, havde det været php - men nu er det jo noget javascript-halløj og tags'ene ser noget anderledes ud, som du kan se.
12. juli 2007 - 16:59
#10
F.eks. <script language="javascript" type="text/javascript"> var models = new Array(); models[models.length] = [["234",1],["235",2],["224",3],["24",4],["4",5],["5",6]]; models[models.length] = [["245",0],["247",2],["C23",1],["Q13",3],["645",4]]; models[models.length] = [["323",1],["626",2],["929",3]]; function showModels(elm){ elm.form.text.style.display = 'none'; var sel = elm.form.select2; if(elm.selectedIndex==0){ sel.style.display = 'none'; }else{ sel.length = 1; var arrNum = elm.selectedIndex-1; for(i=0;models[arrNum].length>i;i++){ sel.options[sel.length] = new Option(models[arrNum][i][0],models[arrNum][i][1]); sel.style.display = 'inline'; } } } </script>
12. juli 2007 - 17:04
#11
Prøv at rette: ------------------------------------------------- <script language="javascript" type="text/javascript"> var models = new Array(); models[models.length] = ["234","235","224","24","4","5"]; models[models.length] = ["245","247","C23","Q13","645"]; models[models.length] = ["323","626","929"]; function showModels(elm){ elm.form.text.style.display = 'none'; var sel = elm.form.select2; if(elm.selectedIndex==0){ sel.style.display = 'none'; }else{ sel.length = 1; var arrNum = elm.selectedIndex-1; for(i=0;models[arrNum].length>i;i++){ sel.options[sel.length] = new Option(models[arrNum][i]); sel.style.display = 'inline'; } } } </script> ------------------------------------------------- Til: ------------------------------------------------- <script language="javascript" type="text/javascript"> var models = new Array(); models[models.length] = ["234","235","224","24","4","5"]; models[models.length] = ["245","247","C23","Q13","645"]; models[models.length] = ["323","626","929"]; function showModels(elm){ elm.form.text.style.display = 'none'; var sel = elm.form.select2; if(elm.selectedIndex==0){ sel.style.display = 'none'; }else{ sel.length = 1; var arrNum = elm.selectedIndex-1; for(i=0;models[arrNum].length>i;i++){ sel.options[sel.length] = new Option(models[arrNum][i]); sel.value = i; sel.style.display = 'inline'; } } } </script> -------------------------------------------------
12. juli 2007 - 18:52
#12
Jeg vil gerne have den til at bruge den valgte data fra første boks i et INSERT statement hvor det er navnet på den tabel, der skal indsættes i. Jeg har ændret navnet og id'et på boksen til "tabel" og så har jeg lavet et insert statement: INSERT INTO `$tabel` (` Men det virker ikke - det virkede før jeg lavede de nye bokse, så det burde kune lade sig gøre. Er der nogen, der kan gennemskue, hvordan jeg bør bære mig ad.
12. juli 2007 - 18:57
#13
Jeg fandt selv fejlen. Men så fungerer alt hvis, som det skal. roenving bare smid et svar, så får du point, da det var din løsning, jeg i sidste ende endte med at vælge
13. juli 2007 - 13:04
#14
Hehe ... jeg sad faktisk og ledte efter dén løsning igår, roenving. Jeg vidste jo, du havde lavet et færdigt eksempel ;o)
18. juli 2007 - 23:40
#15
Velbekomme, håber det bliver en god løsning '-)
06. august 2007 - 15:54
#16
-- og tak for point ;~}
Vi tilbyder markedets bedste kurser inden for webudvikling