AsaMedlem sedan dec. 20011 934 inlägg
Vid val av produkt i selectrutan vill jag att dess pris samt artnr skall lägga sig i de fälten som är för artnr och pris. Här är min kod. Har ett javascript som man kanske kan använda som ligger med i koden men vet ej hur jag skall skriva sen.
<%For i = 1 To 5%>
<script>
function SendTo_<%=i%>(artnr,pris) {
document.faktura.artnr_<%=i%>.value = artnr;
document.faktura.pris_<%=i%>.value = pris;
}
</script>
<tr>
<td width="20%" valign="top" align="right"><input type="text" name="artnr_<%=i%>" style="width:100%"></td>
<td width="50%" valign="top">
<select name="produkt_<%=i%>" style="width:100%">
<option value="">» Välj produkt «
<%Set RS=Conn.Execute("Select produkt,artnr,pris From shop_asp_produkter Order By produkt")
Do Until RS.EOF%>
<option value="<%=RS("produkt")%>"><%=RS("produkt")%><br>
<%RS.MoveNext
Loop
RS.Close:Set RS=Nothing%>
</select>
</td>
<td width="15%" valign="top" align="right"><input type="text" name="antal_<%=i%>" style="width:100%"></td>
<td width="15%" valign="top" align="right"><input type="text" name="pris_<%=i%>" style="width:100%"></td>
</tr>
<%Next%>
J.N.Medlem sedan apr. 20031 660 inlägg
HEJ!
Om du kompletterar din listruta med ett OnChange-anrop till funktionen, borde väl document.faktura.artnr_<%=i%>.value sätta värdet i rätt ruta?
VB-Script är fint, men resulterande JavaScript vore finare här!
AsaMedlem sedan dec. 20011 934 inlägg
Priset och artnr skall hämtas från databasen. Inne i loopen. Går det? Och isåfall hur skriver man?
onChange="javascript:SendTo_<%=i%>('<%=RS("artnr")%>,'<%=RS("pris")%>');"
Jesper TMedlem sedan nov. 20017 058 inlägg
Måste säga att det är Aber att mixa client-side asp-kod och javascript-kod.
Klistra in javascriptkoden som sidan genererar i stället för en oförståelig gröt med spagettikod.
Javascriptprobs i detta forum, asp i aspforumet.
AsaMedlem sedan dec. 20011 934 inlägg
Jag undrar bara om man på nåt sått kan lägga
onChange="javascript:SendTo_<%=i%>('<%=RS("artnr")%>,'<%=RS("pris")%>');"
i en option-tagg - för där måste den ligga...på nåt sätt.
@ndersMedlem sedan juni 200026 914 inlägg
Nej, du kan inte lägga onchange på ett <option>-element. Lägg alla värden du behöver i value på din option, och dela på dem i funktionen.
AsaMedlem sedan dec. 20011 934 inlägg
Hmm, hur då? Javascript är inte min starka sida. Hur skriver jag i det om jag lägger alla fält ifrån databasen som value i option ? OM jag ex separerar med ;
AsaMedlem sedan dec. 20011 934 inlägg
Fick man nån hjälp eller?
@ndersMedlem sedan juni 200026 914 inlägg
Om du har en sträng som ser ut så här: värde1;värde2;värde3, så kan du splitta den så här:
arrValues = strängvariabeln.split(";");
sValue1 = arrValues[0];
sValue2 = arrValues[1];
sValue3 = arrValues[2];
Då har du ju separata variabler för alla värden.
mvh
AsaMedlem sedan dec. 20011 934 inlägg
Men hur skall jag skriva i min kod? Ovan? Med denna onchange i select-taggen:
onChange="javascript:SendTo_<%=i%>(xxxx);"
zcorpanMedlem sedan dec. 20042 269 inlägg
("javascript:" borde inte vara med i event-attribut.)
@ndersMedlem sedan juni 200026 914 inlägg
Asa skrev:
Men hur skall jag skriva i min kod? Ovan? Med denna onchange i select-taggen:
onChange="javascript:SendTo_<%=i%>(xxxx);"
Det är fel sätt att använda funktioner på om du har en funktion per 'post' (i). Skicka hela klabbet som en parameter.
function SendTo(params) {
//
}
<select onchange="SendTo(this.options[this.selectedIndex].value);">
<option value=""></option>
<option value="värde1;värde2;värde3">Post 1</select>
</select>