Tjena ! Lagra arrayen t ex i en sessionsvariabel... sen gör du en for-loop från 19-0 som skriver ut den på "reverse order" sidan... Var det så du menade? Jag är lite inne på hur du menar men är lite osäker på hur jag ska skriva det. Så här kan man göra. Fast de är ju möjligt att de blir mer kod än med arrays då. Jag förstår egentligen inte funktionen av den... men...Loopfuntion bakvänt ?
Jag har gjort följande:
När en sida laddas så loopas 20 inputfält ut med slumpade värden mellan 1-100.
Detta vill jag ha gjort:
När jag sedan trycker på en länk så ska dessa slumpade tal sättas i omvänd ordning.
Så här ser koden ut än sålänge
<code>
<%@ LANGUAGE=javascript %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>uppgift1</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<br><br>
reverse order
<form name="form1" method="post">
<%
var varSlumpTal = 1;
var varLoopCounter;
var varArray = new Array;
for (varLoopCounter = 0; varLoopCounter <= 19; varLoopCounter++)
{
varSlumpTal = (Math.floor(Math.random() * 100) + 1);
varArray[varLoopCounter] = varSlumpTal;
Response.Write("<input type='text' name='formName' value='" + varSlumpTal + "'><br />")
}
%>
</form>
</body>
</html>
</code>
mvhSv: Loopfuntion bakvänt ?
Sv: Loopfuntion bakvänt ?
Saken är den att det är samma sida som ska laddas om fast värdena ska vara omvända i input-fältet.
Skulle gärna vilja se något exempel på hur jag ska göra, står för närvarnade still i hjärnan på mig :
mvhSv: Loopfuntion bakvänt ?
<code>
<%
Randomize
IF Request.Form("Tal1") <> "" THEN
Tal1 = Request.Form("Tal1")
ELSE
Tal1 = INT(Rnd * 100) + 1
END IF
IF Request.Form("Tal2") <> "" THEN
Tal2 = Request.Form("Tal2")
ELSE
Tal2 = INT(Rnd * 100) + 1
END IF
IF Request.Form("Tal3") <> "" THEN
Tal3 = Request.Form("Tal3")
ELSE
Tal3 = INT(Rnd * 100) + 1
END IF
%>
<form action=db_test_conn.asp method=post>
<input type=text name=Tal1 value=<%=Tal3%>><br>
<input type=text name=Tal2 value=<%=Tal2%>><br>
<input type=text name=Tal3 value=<%=Tal1%>><br>
<input type=submit value=Vändom>
</form>
</code>Sv: Loopfuntion bakvänt ?
Det du behöver göra är dels att sätta en "flagga" som håller reda på när du vill ha nya slumpade värden, och när dom befintliga skall vändas på.
Jag att det enklaste sättet är att join:a arrayen och spara den som en sessionsvariabel ifall värdena skall vändas på (då får du både flaggan och arrayen "i ett"). Sessionsvariabeln måste sen split:as innan man använder sig av den i omvändningen.
Hur man gör Join och Split i JavaScript har jag ingen aning om... men det kanske du har?
"Semantiskt" skrivet, ungefär så här:
<code>
<%
' Om sessionsvariabeln innehåller något {
' Splitta den
' Skriv ut arrayen omvänt
' Spara omvänt i en array }
' Annars {
' Slumpa nya värden
' Spara i en array
' Skriv ut arrayen
' }
' Joina arrayen och spara som sessionsvariabel
%>
</code>
Man kan använda sig av en querystring (istället för sessionsvariabeln) om man nu vill det...