Jag har en <select> som listar lite grejs, kan man få så att när man klickar på något i listan så kommer det upp två <input type="text"> under <selecten> den ena är tom och den andra innehåller det som man valde i selecten innan. Om man klickar på en till i selecten så ska denna komma under de första <input type="text">.
Jag har löst det men det är nog ine optimalt.
Beskrivning:
Jag ska gör en recept databas. på ett ställe vill jaggöra följande.
Jag har först ett text fält som man ska skriva in den ingrediensen man letar efter. Under den har jag en <select> som sållar bort allt efter som man skriver i textfältet ovan. i <selecten> har jag listat alla ingredienser i databasen. När man hittat vad man letar efter ska man man klicka på det i selecten, då ska det komma upp tre fält under selekten det ena visar det man valt. Sedan ska man kunna leta ut någon annan indrediens som man vill ha ochsedan ska denna listas under den första ingrediensen osv.
<!-- #include file="../databas/adovbs.inc" -->
<!-- #include file="../db.inc" -->
<HTML>
<head>
<script type="text/javascript">
var lista = new Array();
function searchlist(value,listobj){
if(lista.length == 0) buildlist(listobj);
matches=0;
listobj.length = lista.length;
for(n=0;n<lista.length;n++){
if(lista[n].text.substring(0,value.length) == value) {
listobj[matches].text = lista[n].text;
listobj[matches].value = lista[n].value;
matches++;
}
}
listobj.length = matches;
listobj.selectedIndex=0;
}
function buildlist(obj){
for(n=0;n<obj.length;n++){
lista[n] = new makeobj(obj[n].value,obj[n].text);
}
}
function makeobj(value,text){
this.value=value; this.text=text;
}
function Visa(objekt) {
var o = eval(objekt)
if(o.style.display=='none') {
o.style.display=''
}else{
o.style.display='none'
}
}
</SCRIPT>
</head>
<body>
<form>
<input type="text" name="search" onKeyUp="searchlist(this.value,this.form.lista);" onKeyPress="searchlist(this.value,this.form.lista);" style="width: 150px;"><br>
<select name="lista" size="4" onClick="this.form.search.value=this[this.selectedIndex].text; Visa(this[this.selectedIndex].text);this.form.ingrediens.value=this[this.selectedIndex].text" style="width: 150px;">
<%svar = "SELECT * FROM ingrediens"
SET recset=connect.execute(svar,,adCmdText)
Do until recset.eof%>
<option value="<%=recset("ingrediensID")%>"><%=recset("ingrediens")%></option>
<%recset.movenext
loop%>
</select>
<br>
<%
recset.movefirst
Do until recset.eof
%>
<SPAN ID="<%=recset("ingrediens")%>" STYLE="display:none">
<input type="text" name="mangd" maxlength="3" size="3">
<select name="enhet">
</select>
<input type="text" name="ingrediens" value="<%=recset("ingrediens")%>">
<br></SPAN>
<%recset.movenext
loop%>
</form>
</body>
<%
connect.close%>
</HTML>
Jag tar gärna emot förslg på förändringar.
Det är en ska jag inte är nöjd med och det är att ingrdienserna kommer in bestämd ordning när man klickar på dem häst skulle det bara komma efter en andra, men men
Kan du inte spara alla sin fält somn variabler i js och sedan använda innerHTML=variabelnamn för att skriva ut dem på sidan. ;)
Då skickas bara rätt falt med, fast det kansk blir krångligt