Avatar billede musemor Nybegynder
01. oktober 2003 - 23:56 Der er 12 kommentarer og
1 løsning

Flere selectbokse med relation og ca 20 af dem i en formular

Jeg har brug for hjælp til et script.
Jeg kender ikke så meget til java eller database.Jeg har derfor fundet et script der "næsten" opfylder mine behov, men dog ikke helt.
Jeg har brug for en selectbox der alt efter valg relatere til en ny gruppe af options. Det har jeg for så vidt fundeti nedstående script. Problemet er nu at jeg ligesom kun kan have en boks af hver,ellers får jeg fejl, men jeg har behov for ca 20 af hver.
Første boks skal indeholde  5 muligheder( Aldersklasse).
Anden boks skal indeholde 5 grupper af muligheder (Vægtklasser)
Disse 2 bokse skal jeg så ca 20 stk af under hinanden, da der skal være disse 2 valgmuligheder på hver person som nu tilmelder sig. Det hele skal så sendes vha formmailer så jeg kan se hvilken person der har tilmeldt sig hvilken vægtklasse mm
-----------------
Scriptet ser sådan ud
<script>
vægt = new Array(6); //Antallet af vægt + 1
for (i = 0; i < vægt.length; i++) vægt[i] = new Array();
vægt[0][0] = "Kg";
vægt[1][0] = "18/20 Kg";
vægt[1][1] = "22";
vægt[1][2] = "24";
vægt[1][3] = "26";
vægt[1][4] = "29";
vægt[1][5] = "32";
vægt[1][6] = "35";
vægt[1][7] = "38";
vægt[1][8] = "42";
vægt[1][9] = "47";
vægt[1][10] = "47/53";

vægt[2][0] = "26/29";
vægt[2][1] = "32";
vægt[2][2] = "35";
vægt[2][3] = "38";
vægt[2][4] = "42";
vægt[2][5] = "47";
vægt[2][6] = "53";
vægt[2][7] = "59";
vægt[2][8] = "66";
vægt[2][9] = "73";
vægt[2][10] = "73/85";

vægt[3][0] = "42";
vægt[3][1] = "46";
vægt[3][2] = "50";vægt[3][3] = "54";vægt[3][4] = "58";vægt[3][5] = "63";vægt[3][6] = "69";vægt[3][7] = "76";
vægt[3][8] = "85";vægt[3][9] = "100";

vægt[4][0] = "55";vægt[4][1] = "60";vægt[4][2] = "66";vægt[4][3] = "74";vægt[4][4] = "84";vægt[4][5] = "96";vægt[4][6] = "120";

vægt[5][0] = "XX";

function skift(frm) {
ind = frm.aldersgruppe.selectedIndex;
frm.Vægt.length = vægt[ind].length;
for (n = 0; n < vægt[ind].length; n++) {
frm.Vægt.options[n].text = vægt[ind][n];
frm.Vægt.options[n].value = vægt[ind][n];
}
}
</script>
</head>

<body>
  <form name="formmailler" action="http://www.websup.dk/formmailler.php" method="POST" style="font-family:Verdana; font-size:8 pt">
<input type="hidden" name="Action" value="Tilmeld">
<input type="HIDDEN" name="modtager_email" value="E-mailadresse">
<input type="HIDDEN" name="emne" value="Copenhagen wrestling Cup">
<input type="HIDDEN" name="medsend" value="Tilmelding til CWC 2004;aldersgruppe;Vægt; ">
<input type="HIDDEN" name="url" value="http://www.brydeklubben.dk/cwc/tak_dansk.htm">
<input type="HIDDEN" name="require" value="">


<select name="aldersgruppe" onChange="skift(this.form);">
<option value="P">P</option>
<option value="D">D</option>
<option value="U">U</option>
<option value="U">S</option>
<option value="U">Pi/Kv</option>
</select> <input type="text" name="Årgang" size="10" value="Årgang"><select name="Vægt">
<option value="Vægt">Vægt i Kg</option>
</select> <input type="text" name="Brydernavn1" size="20" value="Navn"><br>
<br>
<br><input type="submit" value="Indsend">
</form>
-------------------------
Det går galt når jeg sætter næste Aldersgruppe og vægtgruppe ind.Hvordan løses dette ???

Hanne
Avatar billede skovenborg Nybegynder
02. oktober 2003 - 00:10 #1
Det er fordi scriptet kun bruges sammen med den første <select>-box. Du bliver nød til at lave lidt om i scriptet for at det virker:
function skift(alder,vaegt) {
ind = alder.selectedIndex;
vaegt.length = vægt[ind].length;
for (n = 0; n < vægt[ind].length; n++) {
vaegt.options[n].text = vægt[ind][n];
vaegt.options[n].value = vægt[ind][n];
}
}

<select name="aldersgruppe" onChange="skift(this,this.form.Vægt);">
<option value="P">P</option>
<option value="D">D</option>
<option value="U">U</option>
<option value="U">S</option>
<option value="U">Pi/Kv</option>
</select> <input type="text" name="Årgang" size="10" value="Årgang"><select name="Vægt">
<option value="Vægt">Vægt i Kg</option>
</select> <input type="text" name="Brydernavn1" size="20" value="Navn"><br>
<br>
<select name="aldersgruppe2" onChange="skift(this,this.form.Vægt2);">
<option value="P">P</option>
<option value="D">D</option>
<option value="U">U</option>
<option value="U">S</option>
<option value="U">Pi/Kv</option>
</select> <input type="text" name="Årgang2" size="10" value="Årgang"><select name="Vægt2">
<option value="Vægt2">Vægt i Kg</option>
</select> <input type="text" name="Brydernavn2" size="20" value="Navn"><br>
<br>
<br><input type="submit" value="Indsend">
</form>
Avatar billede skovenborg Nybegynder
02. oktober 2003 - 00:12 #2
Læg mærke til at jeg sætter et to-tal bag på den næste linie af tilmeldningen. Den næste skal der så et 3-tal bag på og så videre.

Grunden til det er at to elementer (med mindre det er en radio-button) ikke kan have samme navn (det ville også være forvirrende når du henter resultaterne fra formen).
Avatar billede musemor Nybegynder
02. oktober 2003 - 08:24 #3
Det fungere desværre ikke helt.Man får ikke muligheden for at vælge vægten.
Jeg har prøvet at rette lidt hist og pist. Bla var det nok en dårlig ide med æ i scriptet (Vægt)
Jeg får desuden følgende fejl.Linie 57 tegn 1.Et objekt er obligatorisk.Kode 0.
Kan du se hvor problemet ligger. Men ellers ser det da helt fint ud :-)
Hanne

<script>
vaegt = new Array(6); //Antallet af vaegt + 1
for (i = 0; i < vaegt.length; i++) vaegt[i] = new Array();
vaegt[0][0] = "Kg";
vaegt[1][0] = "18/20 Kg";
vaegt[1][1] = "22";
vaegt[1][2] = "24";
vaegt[1][3] = "26";
vaegt[1][4] = "29";
vaegt[1][5] = "32";
vaegt[1][6] = "35";
vaegt[1][7] = "38";
vaegt[1][8] = "42";
vaegt[1][9] = "47";
vaegt[1][10] = "47/53";

vaegt[2][0] = "26/29";
vaegt[2][1] = "32";
vaegt[2][2] = "35";
vaegt[2][3] = "38";
vaegt[2][4] = "42";
vaegt[2][5] = "47";
vaegt[2][6] = "53";
vaegt[2][7] = "59";
vaegt[2][8] = "66";
vaegt[2][9] = "73";
vaegt[2][10] = "73/85";

vaegt[3][0] = "42";
vaegt[3][1] = "46";
vaegt[3][2] = "50";vaegt[3][3] = "54";vaegt[3][4] = "58";vaegt[3][5] = "63";vaegt[3][6] = "69";vaegt[3][7] = "76";
vaegt[3][8] = "85";vaegt[3][9] = "100";

vaegt[4][0] = "55";vaegt[4][1] = "60";vaegt[4][2] = "66";vaegt[4][3] = "74";vaegt[4][4] = "84";vaegt[4][5] = "96";vaegt[4][6] = "120";

vaegt[5][0] = "XX";

function skift(alder,vaegt) {
ind = alder.selectedIndex;
vaegt.length = vaegt[ind].length;
for (n = 0; n < vaegt[ind].length; n++) {
vaegt.options[n].text = vaegt[ind][n];
vaegt.options[n].value = vaegt[ind][n];
}
}
</script>
</head>
<body>
<select name="alder" onChange="skift(this,this.form.vaegt);">
<option value="P">P</option>
<option value="D">D</option>
<option value="U">U</option>
<option value="U">S</option>
<option value="U">Pi/Kv</option>
</select> <input type="text" name="Årgang" size="10" value="Årgang"><select name="Vægt">
<option value="Vægt">Vægt i Kg</option>
</select> <input type="text" name="Brydernavn1" size="20" value="Navn"><br>
<br>
<select name="aldersgruppe2" onChange="skift(this,this.form.vaegt2);">
<option value="k">alder</option>
<option value="P">P</option>
<option value="D">D</option>
<option value="U">U</option>
<option value="U">S</option>
<option value="U">Pi/Kv</option>
</select> <input type="text" name="Årgang2" size="10" value="Årgang"><select name="Vægt2">
<option value="Vægt2">Vægt i Kg</option>
</select> <input type="text" name="Brydernavn2" size="20" value="Navn"><br>
<br>
<br><input type="submit" value="Indsend">
</form>
Avatar billede skovenborg Nybegynder
02. oktober 2003 - 16:03 #4
du mangler så stadig også at ændre navnet på din vægt-selectboks:
<select name="Vægt"> skal være <select name="vaegt"> hvis du vil skrive onChange="skift(this,this.form.vaegt);"

Ligeledes med den anden vægt-selectboks.
Avatar billede musemor Nybegynder
02. oktober 2003 - 18:09 #5
Det har jeg faktisk gjort.Har dog ikke fået det med i ovenstående. men fejlen er den samme.Så det må være noget andet
Du kan se og prøve den her http://www.ravneberg.dk/selectbokse

<select name="alder" onChange="skift(this,this.form.vaegt);">
<option value="P">P</option>
<option value="D">D</option>
<option value="U">U</option>
<option value="U">S</option>
<option value="U">Pi/Kv</option>
</select> <input type="text" name="Årgang" size="10" value="Årgang"><select name="vaegt">
<option value="vaegt">Vægt i Kg</option>
</select> <input type="text" name="Brydernavn1" size="20" value="Navn"><br>
<br>
<select name="alde2" onChange="skift(this,this.form.vaegt2);">
<option value="k">alder</option>
<option value="P">P</option>
<option value="D">D</option>
<option value="U">U</option>
<option value="U">S</option>
<option value="U">Pi/Kv</option>
</select> <input type="text" name="Årgang2" size="10" value="Årgang"><select name="vaegt2">
<option value="vaegt2">Vægt i Kg</option>
</select> <input type="text" name="Brydernavn2" size="20" value="Navn"><br>
<br>
<br><input type="submit" value="Indsend">

Hanne
Avatar billede musemor Nybegynder
02. oktober 2003 - 18:12 #6
Hov ! jeg kom til at acceptere,men problemet er ikke løst.
For jeg havde ændret selectboksne,men ikke fået dem med på nettet, men der hjælper ikke.
Det må være noget andet.
Du kan se det her http://www.ravneberg.dk/selectbokse
Avatar billede skovenborg Nybegynder
02. oktober 2003 - 19:10 #7
På den side du viste mig mangler du et <form name="formnavn"> element, som skal være med, ellers kan du ikke bruge scriptet.
Avatar billede skovenborg Nybegynder
02. oktober 2003 - 19:11 #8
altså ligesom fra starten:
<form name="formmailler" action="http://www.websup.dk/formmailler.php" method="POST" style="font-family:Verdana; font-size:8 pt">
Avatar billede musemor Nybegynder
02. oktober 2003 - 22:53 #9
Jeg er altså ked af at måtte sige det. Men formmaileren hjælper da ikke på at scriptet virker.Scriptet virker ikke.
Når man vælger aldersklasse så er der fejl med det samme.Man kan slet ikke vælge vægtklasse.Heller ikke selv om der er formmailer med.
Håber stadig på at du kan finde fejlen, da dette lige er det jeg har brug for til den hjemmeside jeg er ved at lave for en klub.
Kunne du evnt afprøve scriptet og se om du kan få det til at virke.
Du kan få alle de point jeg har til rådighed samt en glad webmaster.
Hanne
Avatar billede skovenborg Nybegynder
02. oktober 2003 - 23:02 #10
hvis vi holder os til den side du siden http://www.ravneberg/selectbokse så er der en fejl der udgør problemmet: Navnene!
I javascript må du nemlig ikke bruge det samme navn til to forskellige ting. Her har du både kaldet array'et med alle vægtklasserne for vaegt, den ene selectboks for vaegt OG (en fejl fra min side- UPS) variablen i funktionen skift hedder også vaegt.
Jeg har retter det på denne side: http://www.skovenborg.frac.dk/exp/408506.htm
Avatar billede skovenborg Nybegynder
02. oktober 2003 - 23:04 #11
Det jeg har gjort er at ændre funktionen til:
function skift(alder,vaegtSel) {
ind = alder.selectedIndex;
vaegtSel.length = vaegt[ind].length;
for (n = 0; n < vaegt[ind].length; n++) {
vaegtSel.options[n].text = vaegt[ind][n];
vaegtSel.options[n].value = vaegt[ind][n];
}
}

Samt lige at ændre en lille ting nede i <select>-boksen:
<select name="vaegt1">
<option value="vaegt">Vægt i Kg</option>
</select>

Du skal dog stadig huske <form>-elementet lige meget hvad. Den skal du jo alligevel bruge når du skal sende oplysningerne !-)
Avatar billede musemor Nybegynder
03. oktober 2003 - 10:07 #12
Det fungere bare perfekt. Tusind tak
Har du fået dine point for jeg syntes ikke jeg har mulighed for at acceptere dit svar mere.Kom vist til at bøvle lidt med det i går.

Jeg kan se at du er ret aktiv bruger.Desuden kan du noget med php og java som jeg jo ikke kan.
Som du måske har set så sidder jeg som webmaster for flere brydeklubber, men online tilmelding mm.Det er ret besværligt når jeg ikke kan disse ting.Så det er rart med hjælp fra en der kan.
Dit navn og hjemmeside ER noteret hvis jeg får brug for dig igen.Men jeg har ikke kunne finde dit iCQ nr
Hanne
Avatar billede skovenborg Nybegynder
03. oktober 2003 - 16:38 #13
det kan du se på http://www.ebruger.dk/profil.asp?bruger=skovenborg
Er dog ikke den bedste til PHP, men kan da lidt, så du må da godt spørge hvis jeg er online.

Ellers er eksperten et rigtig godt sted til den slags spørgsmål ;-)

Svarer lige så du kan acceptere - du afviste det jo før.
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