18. august 2017 - 23:26Der er
7 kommentarer og 2 løsninger
Hvordan får jeg JavaScript variablen ind i min ASP SQL streng?
Akt" & nummerknap skal blive til Akt1 eller Akt2 eller Akt3 alt efter hvad der kommer ned i functionen. Hvordan sætter jeg variablen nummerknap ind i min ASP SQL streng som ligger i en JavaScript function? Det virker hvis jeg hardcoder Akt1 eller Akt2.
<script> function setValue(nummerknap) { document.getElementById('SamletSum').innerHTML = <%response.write conn.execute("select * from Aktivitet WHERE AktID = 'AktPris'")("Akt" & nummerknap)%> }
Al ASP køres før JS så din nummerknap-variabel vil være tom - og din SQL vil slet ikke køre på funktionskaldet men allerede i det øjeblik siden kaldes første gang. Hvis du vil kalde noget ASP dynamisk via JS skal du gøre det async.
Som #1 siger. Skal din query bruge input fra brugeren undervejs, så kan det være en løsning at kigge på ajax. Så har du netop muligheden for at sende javascript variabler / inputs retur til din asp kode og melde et resultat retur igen.
Så forstår jeg bedre at jeg roder og ikke får noget i min variabel. Er der nogen der har eller kan vise noget kode til hvordan jeg laver det? async eller med ajax?
Hvis det er et mindre antal værdier du arbejder med kunne du overveje bare at lægge dem et JavaScript array eller lignende på load og dermed helt undgå Ajax.
Nu er det jo lidt svært at gætte hvad du præcist forsøger. Har du en liste af "nummerknapper" der skal gøre et eller andet i en database eller hvad er det store formål. Lidt flere info, så er jeg 100% sikker på kejseren eller jeg kan hjælpe dig.
Det er knapper jeg klikker på, 1 til 40. Der ligger en id og en onclick på hver af dem som kalder JS function: T er en For - Next løkke fra 1 til 40. id=set_Value onclick="setValue(<% Response.Write(T) %>)
Det virker, og det der skal ske i Functionen virker, feks: function setValue(nummerknap) { document.getElementById('Akt'+nummerknap+'Betalt').style.backgroundColor = "#A6FFA6"; }
Nu er det så jeg skal lave et opslag i database med den værdi der kommer i funktionen gennem nummerknap: document.getElementById('SamletSum').innerHTML = <%response.write conn.execute("select * from Aktivitet WHERE AktID = 'AktPris'")("Akt" & nummerknap)%>
Hvis ikke det er flere værdier, det ikke er noget der skal være 100% live og ikke kræver validering, opdatering eller lignende serverside så læg værdierne i JS på pageload. Og medmindre det er skjult i kode vi ikke kan se så husk at tage højde for SQL injection.
Jeg laver en variabel(T) hvor jeg ligger værdier ind i. Skal bare lige finde ud af hvor i koden jeg skal tildele værdier til variablen for at kan bruge den senere i min kode.
Det kan du gøre hvor end du vil - så længe det er en javascript-variabel af en art (og den er tilgængelig for andre functions) og din oprindelige kode alligevel først køres på et onclick er der ingen begrænsninger.
Synes godt om
Ny brugerNybegynder
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.