18. juli 2003 - 09:25Der er
27 kommentarer og 2 løsninger
Automatisk input i formular
Jeg har et produktkatalog, og dukker frem i denne del af min formular:
<tr> <td align=right valign="top"><font face="verdana, arial" size="1" color="#000000"> Kategori: </font><BR></td> <td align=left valign="top"> <font face="verdana, arial" size="1" color="<%= text %>"> <select name="catcode"> <% set rscat=db.execute("select catcode, catname, catname_uk from categories order by catname") while not rscat.eof if rscat("catcode")=catcode then %> <option value="<%=rscat("catcode")%>" selected><%= rscat("catname")%> (<%=rscat("catname_uk")%>) <% else %> <option value="<%=rscat("catcode")%>"><%= rscat("catname")%> (<%=rscat("catname_uk")%>) <%end if rscat.movenext wend %> </select> </td> </tr>
Mit problem er, at jeg gerne vil have sendt en 'input type=hidden' med. Den skal så at sige genereres automatisk alt efter hvad der bliver valgt i min dropdown.
Hvordan kan det gøres? Det skal lige siges at kataloget hives frem af en database.
<select name="catcode" onchange="document.formnavn.hiddenfield.value = document.formnavn.catcode.options[document.mainform.catcode.selectedIndex].text;"> <% set rscat=db.execute("select catcode, catname, catname_uk from categories order by catname") while not rscat.eof if rscat("catcode")=catcode then %> <option value="<%=rscat("catcode")%>" selected><%= rscat("catname")%> (<%=rscat("catname_uk")%>) <% else %> <option value="<%=rscat("catcode")%>"><%= rscat("catname")%> (<%=rscat("catname_uk")%>) <%end if rscat.movenext wend %> </select>
Ja, jeg er super-green i javascript. Burde kende mere til det eftersom jeg har beskæftiget mig med webdesign siden 1997. Men jeg har nu altid forsøgt at snige mig udenom, og har øvet mig i CSS, ASP, database og alt muligt andet i stedet :)
Og lige en anelse lettere: onchange="this.form.catcode_uk.value = this.options[this.selectedIndex].value;"
-- og så skal dit hidden field have en værdi fra start, som svarer til at brugeren ikke ændrer -- eventuelt skal du tvinge brugeren til at ændre ved at sætte en <option value="">-- Select product-group --</option>
Det er jo indlysende at bruge det objekt man har i hånden i stedet for at tage en telefon frem og ringe ned til hjemmehjælpen og bede dem sende en, som kan fortælle dig i hvilken hånd du har telefonen *g*
Jeg har nu endelig fået tid til at gennemteste det. Jeg vil bruge det her: onchange="this.form.catcode_uk.value = this.options[this.selectedIndex].value;"
Men værdien skal jo regulere sig alt efter hvad brugeren vælger i en selectorbox...
Jeg kan ikke helt se hvor jeg skal placere scriptet... hvordan kan det sættes ind i dette?
<select name="catcode"> <% set rscat=db.execute("select catcode, catname, catname_uk from categories order by catname") while not rscat.eof if rscat("catcode")=catcode then %> <option value="<%=rscat("catcode")%>" selected><%= rscat("catname")%> (<%=rscat("catname_uk")%>) <% else %> <option value="<%=rscat("catcode")%>"><%= rscat("catname")%> (<%=rscat("catname_uk")%>) <%end if rscat.movenext wend %> </select>
<select name="catcode" onchange="this.form.catcode_uk.value = this.options[this.selectedIndex].value;"> <% set rscat=db.execute("select catcode, catname, catname_uk from categories order by catname") while not rscat.eof if rscat("catcode")=catcode then %> <option value="<%=rscat("catcode")%>" selected><%= rscat("catname")%> (<%=rscat("catname_uk")%>) <% else %> <option value="<%=rscat("catcode")%>"><%= rscat("catname")%> (<%=rscat("catname_uk")%>) <%end if rscat.movenext wend %> </select>
Min form tag ser således ud: <form action="product.asp?stage=save&productid=<%= productid %>" method=post>
Jeg kunne godt tænke mig at se det HTML som dit ASP script returnerer. Grunden er at jeg ser at du vil have noget af skriften fra de forskellige options sendt videre som form-data.
Jeg har aldrig brugt ASP, men jeg ser logikken i dit database udtræk.
et eksempel på HTML-output: <option value="3">catname (catname_uk)</option>
Har jeg ret. Og du vil have det som står i parentes?
Jeg har netop tilsat </option>, den havde jeg glemt. (Problemet er dog fortsat det samme). roenving den struktur du beskriver stemmer nu overens med mit script, nu hvor jeg har fået sat </option> på.
-- og så fik du at vide at så automatisk kan man ikke "så at sige generere automatisk" -- feltet skal fysisk findes i koden hvis vi bruger den model ...
Man kan godt, men det er spild af gode kræfter på en form !-)
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.