Avatar billede perstig Nybegynder
21. juli 2005 - 10:48 Der er 3 kommentarer og
1 løsning

jeg får følgende fejl: undefined

Jeg sidder her og prøver på at finde ud af javascript og er løbet ind i noget jeg ikke lige kan gennemskue.

Understående kode er hentet fra javascript.internet.com men jeg kan ikke få det til at virke.

test1.htm:

<form type=get action="test2.htm">
<table border=1>
<tr>
<td>First Name:</td>
<td><input type=text name=firstname size=10></td>
</tr>
<tr>
<td>Last Name:</td>
<td><input type=text name=lastname size=10></td>
</tr>
<tr>
<td>Age:</td>
<td><input type=text name=age size=3></td>
</tr>
<tr>
<td colspan=2><input type=submit value="Submit!">
</td>
</tr>
</table>
</form>

test2.htm:

<!-- Begin
function getParams() {
var idx = document.URL.indexOf('?');
var params = new Array();
if (idx != -1) {
var pairs = document.URL.substring(idx+1, document.URL.length).split('&');
for (var i=0; i<pairs.length; i++) {
nameVal = pairs[i].split('=');
params[nameVal[0]] = nameVal[1];
  }
}
return params;
}
params = getParams();

//  End -->
</script>
</HEAD>
<BODY>

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
firstname = unescape(params["firstname"]);
lastname = unescape(params["lastname"]);
age = unescape(params["age"]);

document.write("firstname = " + firstname + "<br>");
document.write("lastname = " + lastname + "<br>");
document.write("age = " + age + "<br>");
//  End -->
</script>

Indholdet i formen(test1.htm) sendes videre til test2.htm via URL'en. Det virker fint.
Problemt opstår når jeg på test2.htm vil skrive det der kommer fra URL'en

Det resultat jeg får er:
firstname = undefined
lastname = undefined
age = undefined

Så skulle man mene at jeg ikke har erklæret de 3 variabler, men det har jeg prøvet, også uden resultat.
Avatar billede roenving Novice
21. juli 2005 - 12:05 #1
method="get" og ikke type="get" ...

-- og hvis du ikke angiver en method er den default get ...

-- men det virker lidt tåbeligt at tage udgangspunkt document.URL, nå man nemmere kan bruge location.search !-)

-- og hvis du skriver test2.htm på den måde får du vel en udskrift af javascript-koden, så det er vel en tavetosse, at der ikke er et <script>-tag med som start ...

-- jeg ville bare:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="Generator" content="Stone's WebWriter 4">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Tomt dokument</title>
</head>

<body>
<script language="javascript" type="text/javascript">
var params = new Array();
if(location.search.length>1){
  var q = location.search.substring(1).split("&");
  for(i=0;q.length>i;i++){
    q[i] = q[i].split("=");
    params[q[i][0]] = q[i][1];
    document.write(q[i][0] + " = " + q[i][1] + "<br>");
  }
}
</script>

</body>

</html>

-- og det virker i hvert fald hos mig !-)
Avatar billede perstig Nybegynder
21. juli 2005 - 12:27 #2
Jamen du er jo en guttermand

Hva' med de points?
Avatar billede roenving Novice
21. juli 2005 - 12:34 #3
Velbekomme '-)

-- og nu skrev jeg det direkte, men du kan stadig benytte params-arrayet !-)
Avatar billede roenving Novice
21. juli 2005 - 12:46 #4
-- og tak for point ;~}
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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