Avatar billede thomic Nybegynder
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.
Avatar billede olebole Juniormester
12. juli 2007 - 14:30 #1
<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>
Avatar billede thomic Nybegynder
12. juli 2007 - 14:49 #2
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?
Avatar billede olebole Juniormester
12. juli 2007 - 15:06 #3
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|
Avatar billede olebole Juniormester
12. juli 2007 - 15:16 #4
Hvormange muligheder er der for den anden select? Er der mulighed for at smide dem med ned i et JavaScript-array?
Avatar billede thomic Nybegynder
12. juli 2007 - 15:29 #5
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?
Avatar billede roenving Novice
12. juli 2007 - 16:26 #6
Kig f.eks. på en løsningsmulighed som i denne tråd: http://www.eksperten.dk/spm/615326 !-)
Avatar billede thomic Nybegynder
12. juli 2007 - 16:42 #7
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"?
Avatar billede w13 Novice
12. juli 2007 - 16:49 #8
<option value="1">C23</option> ?
Avatar billede thomic Nybegynder
12. juli 2007 - 16:53 #9
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.
Avatar billede roenving Novice
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>
Avatar billede w13 Novice
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>
-------------------------------------------------
Avatar billede thomic Nybegynder
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.
Avatar billede thomic Nybegynder
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
Avatar billede olebole Juniormester
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)
Avatar billede roenving Novice
18. juli 2007 - 23:40 #15
Velbekomme, håber det bliver en god løsning '-)
Avatar billede roenving Novice
06. august 2007 - 15:54 #16
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester