/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Asp kaldt i javescript
Fra : Tine Gade


Dato : 11-10-04 12:52

Hej igen
I mit forsøg på at bruge asp og databaser i mit projekt er jeg
stødt ind i endnu et problem.
Jeg vil gerne opdatere min database når der er ændret i tabellen
på siden.
Jeg har lagt opdateringen ind i en funktion, men der opdateres
alligevel når siden loades, og ikke først når funktionen kaldes.
Hvordan kan jeg omgåes dette?

<HEAD>
<TITLE> VHF Configuration page </TITLE>

<script>
function gem_asp(){

<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db1.mdb")
Conn.Open DSN

' SQL sætning opbygges
strSQL = "Update Tabel1 set "
strSQL = strSQL & "Felt1= '89'"


' SQL sætning eksekveres
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>

</script>
</HEAD>

Tine

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jens Gyldenkærne Cla~ (11-10-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 11-10-04 13:13

Tine Gade skrev:

> Jeg vil gerne opdatere min database når der er ændret i tabellen
> på siden.

I så fald skal du kalde siden igen - asp-koden kan kun køres når en side
hentes fra serveren (men det kan så godt være anden gang den hentes i
stedet for første gang).

> Jeg har lagt opdateringen ind i en funktion, men der opdateres
> alligevel når siden loades, og ikke først når funktionen kaldes.

Dit problem er at du ikke har tænkt på i hvilken rækkefølge koden køres.


> <script>
> function gem_asp(){

Herover står der et javascript eller jscript (du har ikke angivet typen
i script) - det er kode der køres på klienten. "function gem_asp(){"
angiver starten på en scriptfunktion der skal køres på klienten - så den
er sådan set o.k.


> <%
> ' Databaseforbindelse - husk at angive sti til din database

- men her lægger du så serversidekode ind. Koden du skriver i
asp-klammer (<% ... %>) kan ikke ses af din gem_asp()-funktion - det er
kun et evt. udskrevet resultat der vil blive vist der.

Asp-koden kører når du viser siden, eftersom du ikke har pakket den ind
i en asp-procedure (fx med Sub gem() .... End Sub).

Hvis du viser koden fra din side i en browser (vis kilde), kan du se at
din gem_asp-funktion er tom.

Det du kan gøre, er at bruge javascript til at submitte din form hvis
der er ændret i et givent felt - kig på hændelsen onchange. I asp-koden
undersøger du så om der er submittet noget fra formen, og kun hvis det
er tilfældet kører du din opdatering.

--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Tine Gade (11-10-2004)
Kommentar
Fra : Tine Gade


Dato : 11-10-04 14:22


> Det du kan gøre, er at bruge javascript til at submitte din form hvis
> der er ændret i et givent felt - kig på hændelsen onchange. I asp-koden
> undersøger du så om der er submittet noget fra formen, og kun hvis det
> er tilfældet kører du din opdatering.

Jeg har nu gjort, næsten, som du foreslår! Jeg har lavet formen således:

<FORM action="indsaet.asp" method="post">
<tr><td>Ship name</td>
   <td>
   <INPUT NAME="NAME" VALUE=<% Response.Write rs("Felt1") %> SIZE=20
maxlength=20>
   </td></tr>
<snip>
</table>

<br>
<INPUT TYPE="submit" VALUE="Configure VHF"> <P>
</FORM>

I indsaet.asp ligger så koden til at opdatere fra før.

Det fungerer i princippet også fint, værdien bliver opdateret i databasen,
men der skiftes side til indsaet.asp som jo er blank da den kun indeholder
scritptet, kan jeg undgå at den skifter side??

Tine



--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (11-10-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 11-10-04 20:11

Tine Gade skrev:

> <FORM action="indsaet.asp" method="post">
> <tr><td>Ship name</td>

Et strukturelt problem (der i øvrigt ikke har noget med dit problem
at gøre): Du må ikke placere <form> mellem <table> og <tr>.
Tabeller består som minimum af elementerne <table>, <tr> og
<td>/<th>. Disse tre elementer må ikke adskilles - bortset fra
specielle tabelkoder som <caption>, <thead>/<tbody>, <col> m.fl.

Skal man placere noget i en tabel, skal det derfor stå i en td
eller en th - der må ikke stå almindelige elementer i tr eller
table.


> <INPUT TYPE="submit" VALUE="Configure VHF"> <P>

Så vidt jeg kan se har du droppet autosubmit - så man skal altså
selv trykke på submit. Det er i de fleste tilfælde også en fin ide.

> Det fungerer i princippet også fint, værdien bliver opdateret
> i databasen, men der skiftes side til indsaet.asp som jo er
> blank da den kun indeholder scritptet, kan jeg undgå at den
> skifter side??

Du kan lægge koden fra indsaet.asp ind på den side der også viser
data - og så lave et tjek der sørger for at koden kun køres når der
skal opdateres.

En anden, og lidt lettere måde, er at bruge response.redirect til
at gå tilbage til visningssiden når indsaet.asp er færdig.

Du placerer bare en linje med

   response.redirect "navn_på_visningsside.asp"

- nederst i indsaet.asp.

Hvis det skal virke, må indsaet.asp ikke udskrive noget til
browseren - der skal altså ikke være nogen html-skabelon til den
side.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Finn (11-10-2004)
Kommentar
Fra : Finn


Dato : 11-10-04 13:20


"Tine Gade" <tinegade@webspeed.bla> skrev i en meddelelse
news:416a73f7$0$56885$14726298@news.sunsite.dk...
> Jeg vil gerne opdatere min database når der er ændret i tabellen
> på siden.
> Jeg har lagt opdateringen ind i en funktion, men der opdateres
> alligevel når siden loades, og ikke først når funktionen kaldes.

Din asp kode bliver afviklet uanset script, der slet ikke bliver loadet.

En ide kunne være at lave if...then sætningen hvor du så checker op mod et
på parameter.
eller blot lader brugeren afgøre det vha en Update knap


mvh Finn T



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408526
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste