Avatar billede hanstik Nybegynder
11. februar 2004 - 14:04 Der er 11 kommentarer og
1 løsning

Tilskrive værdier til hidden felt ved body onload

I en form har jeg fire hidden felter.

<input type="hidden" name="T1">
<input type="hidden" name="T2">
<input type="hidden" name="T3">
<input type="hidden" name="T4">

Jeg ønsker at de fire hidden felter i <body onload> skal tilskrives en værdi. Dvs. IKKE ved et klik på submit knap eller lign.

Jeg tildeler værdierne til felterne på følgende måde:

<script language = javascript>
document.all.T1.value = navigator.appName;
document.all.T2.value = navigator.systemLanguage;
document.all.T3.value = navigator.userLanguage;
document.all.T4.value = navigator.platform;
</script

Jeg skal senere bruge og hente de fire værdier med Request.Form("T1") osv.

Siden med de fire hidden felter skal være en INCLUDE til en anden asp side.

Men hvordan får jeg lavet ÉT load af siden så jeg kan bruge de fire værdier på den anden side.

Jeg har prøvet at tilskrive værdier i <body onload>, men siden looper og looper. Jeg ønsker kun ét load af siden...

Nogle der har erfaring med det...?
Avatar billede clscableguy Praktikant
11. februar 2004 - 14:27 #1
jeg vil bruge session variabler
Avatar billede fennec Nybegynder
11. februar 2004 - 14:27 #2
Hvorfor skal siden reloades??? hvis du skriver det som du har her får hidden felterne værdierne.

<input type="hidden" name="T1">
<input type="hidden" name="T2">
<input type="hidden" name="T3">
<input type="hidden" name="T4">
<script language = javascript>
document.all.T1.value = navigator.appName;
document.all.T2.value = navigator.systemLanguage;
document.all.T3.value = navigator.userLanguage;
document.all.T4.value = navigator.platform;
</script>
Avatar billede hanstik Nybegynder
11. februar 2004 - 14:56 #3
Hej,

Tak for svar(ene).

Hvis man derefter gør dette:
.
.
.
</script>

<%
response.write(request.form("T1"))
response.write(request.form("T2"))
response.write(request.form("T3"))
response.write(request.form("T4"))
%>

- så er form T1-T4 tomme. Dvs. man er nødt til at lave en reload af formen for at væriderne kan hentes mellem <% %> (det er hvad jeg har vurderet...).

Jeg har prøvet at få de fire værdier (Navigator.*) over i en sessions/applications variabel, men navigator objektet kan ikke bruges mellem <% %>.
Avatar billede clscableguy Praktikant
11. februar 2004 - 15:00 #4
har du prøvet bare at gøre sådan her:

<%
response.write(request("T1"))
response.write(request("T2"))
response.write(request("T3"))
response.write(request("T4"))
%>
Avatar billede fennec Nybegynder
11. februar 2004 - 15:25 #5
Du har altså en document.form.action og submit() et eller andet sted på din side (i onLoad måske). Det du skal gøre er at sende en mode med.

<% if request.querystring("mode") <> "noLoad" then%>
document.form.action = "minside.asp?mode=noLoad"
document.form.submit()
<% end if %>

så skulle siden gerne kun loade en gang.
Avatar billede hanstik Nybegynder
12. februar 2004 - 08:11 #6
-> clscableguy: Ja, det er jeg også prøvet, uden held...

-> fennec:

Måden jeg gør det på nu er følgende (men siden looper og looper...):

<html>
<head>
<title>TEST</title>

<script language = javascript>

function loadPage()
{
    document.all.T1.value = navigator.appName;
    document.all.T2.value = navigator.systemLanguage;
    document.all.T3.value = navigator.userLanguage;
    document.all.T4.value = navigator.platform;
    document.forms[0].submit();
}
</script>

</head>

<body onload = "loadPage()">

<form method=post action="testside.asp">
<input type="hidden" name="T1">
<input type="hidden" name="T2">
<input type="hidden" name="T3">
<input type="hidden" name="T4">
</form>

<%
response.write Request.Form("T1")
response.write Request.Form("T2")
response.write Request.Form("T3")
response.write Request.Form("T4")
%>

</body>

</html>
Avatar billede fennec Nybegynder
12. februar 2004 - 08:20 #7
prøv dette.....
<body <%if mode <> "noLoad" then %>onload = "loadPage()"<%end if%>>

<form method=post action="testside.asp?mode=noLoad">
Avatar billede fennec Nybegynder
12. februar 2004 - 08:21 #8
du skal lige have

<%
dim mode
mode = request.querystring("mode")
%>

i toppen af siden...
Avatar billede hanstik Nybegynder
12. februar 2004 - 08:39 #9
Hej igen.
Jeg har lige prøvet følgende, men siden looper stadig... Andre gode forslag? :-)

<%
dim mode
mode = request.querystring("mode")
%>

<html>
<head>
<title>TEST</title>

<script language = javascript>

function loadPage()
{
    document.all.T1.value = navigator.appName;
    document.all.T2.value = navigator.systemLanguage;
    document.all.T3.value = navigator.userLanguage;
    document.all.T4.value = navigator.platform;
    document.forms[0].submit();
}
</script>

</head>

<body <%if mode <> "noLoad" then %>onload = "loadPage()"<%end if%>>

<form method=post action="testside.asp?mode=noload">
<input type="hidden" name="T1">
<input type="hidden" name="T2">
<input type="hidden" name="T3">
<input type="hidden" name="T4">
</form>

<%
response.write Request.Form("T1")
response.write Request.Form("T2")
response.write Request.Form("T3")
response.write Request.Form("T4")
%>

</body>

</html>
Avatar billede fennec Nybegynder
12. februar 2004 - 08:44 #10
Skriv noLoad ens begge steder...
noload <-> noLoad så burde den være der....
Avatar billede hanstik Nybegynder
12. februar 2004 - 08:46 #11
Glimragende. :-)
Kom lige med et 'Svar' så du kan få nogle point! :-)

Jeg takker mange gange!
Avatar billede fennec Nybegynder
12. februar 2004 - 08:49 #12
Svar.
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
Kategori
Kurser inden for grundlæggende programmering

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