Avatar billede Ulrich Seniormester
18. august 2017 - 23:26 Der 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)%>
    }
Avatar billede keysersoze Guru
19. august 2017 - 00:19 #1
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.
Avatar billede jakobdo Ekspert
19. august 2017 - 09:45 #2
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.
Avatar billede Ulrich Seniormester
19. august 2017 - 10:00 #3
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?
Avatar billede keysersoze Guru
19. august 2017 - 10:16 #4
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.
Avatar billede jakobdo Ekspert
19. august 2017 - 10:57 #5
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.
Avatar billede Ulrich Seniormester
19. august 2017 - 12:50 #6
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)%>

Hilsen Ulrich
Avatar billede keysersoze Guru
19. august 2017 - 14:27 #7
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.
Avatar billede Ulrich Seniormester
21. august 2017 - 09:57 #8
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.
Avatar billede keysersoze Guru
21. august 2017 - 10:19 #9
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.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester