06. august 2002 - 14:18
Der er
4 kommentarer
At bruge onChange fra en <SELECT> i et ASP-dokument?!?
Hvorfor får jeg en syntaksfejl med nedenstående? Hvordan skal det struktureres og hvilken syntaks er gældende når jeg blander asp, javascript og dhtml?!? Her kalder jeg det fra .asp dokument: <select name="fabrikant" onChange="hentCPUer();"> <option value="Intel">Intel </option> <option value="AMD">AMD</option> </select> Her forsøger jeg at fange eventen. Det lykkedes men får at vide, at et objekt var ventet: <% function hentCPUer() { conn = createDBConnection(); var sql="SELECT Processor FROM Basis_pc WHERE Basis_pc.Fabrikant='"; sql = + sql + fabrikant.value +"';" res = conn.execute(sql); Response.write("<select name=processor id=processor>"); while(!res.EOF) { var cpu = res.Fields("Processor"); Response.write("<option value="+cpu+"> "+cpu+" </option>"); res.moveNext(); } if(res.EOF) Response.write("</select></td>"); } %> Jeg bruger endvidere et SSI hvori jeg har en enkelt JScript funktion til at connecte til db. <!-- #include file="dbConnectionDeltaPC.js" --> Men eventen giver kodefejl. Hvad er der galt? /mvh mr.gessle
Annonceindlæg fra Computerworld
06. august 2002 - 14:28
#1
Tja... Du kan ikke kalde en ASP-metode direkte fra dit klientscript. Når man vælger en CPU, er du nødt til at kalde siden igen med en parameter som angiver dit valg. Evt. submitte den form som din select-boks ligger i.
06. august 2002 - 14:30
#2
ja, selvfølgelig gør den det....;o) din onchange event kan kun kalde et javascript (på klienten), og ikke jscript (på serveren) du kan gøre noget ala function hentCPU() { document.formnavn.submit(); } i dig serverside jscript kan du så checke om der er valgt en cputype eller ej ala if (Request.Form("processor") != "") { conn = createDBConnection(); var sql="SELECT Processor FROM Basis_pc WHERE Basis_pc.Fabrikant='"; sql = + sql + fabrikant.value +"';" res = conn.execute(sql); Response.write("<select name=processor id=processor>"); while(!res.EOF) { var cpu = res.Fields("Processor"); Response.write("<option value="+cpu+"> "+cpu+" </option>"); res.moveNext(); } if(res.EOF) Response.write("</select></td>"); } (jeg skriver ikke jscript normalt, men vbscript så muligvis min if sætning ikke dur (if (request.Form("processor") != "") ) ;)
06. august 2002 - 14:31
#3
du skal lige huske værdien if (Request.Form("processor") != "") { conn = createDBConnection(); var sql="SELECT Processor FROM Basis_pc WHERE Basis_pc.Fabrikant='"; sql = + sql + Request.Form("processor") +"';" res = conn.execute(sql); Response.write("<select name=processor id=processor>"); while(!res.EOF) { var cpu = res.Fields("Processor"); Response.write("<option value="+cpu+"> "+cpu+" </option>"); res.moveNext(); } if(res.EOF) Response.write("</select></td>"); }