我认为我的问题很奇怪...我在这里学习,并希望使用AJAX& JSP按顺序显示一些其他JSP页面。 即单击按钮:显示page1.jsp,再次单击按钮:显示page2.jsp,...
我让JSP在页面之后添加'1',JSP确实增加了变量。但它并没有改变第1页的价值......
如果我执行location.reload(),它会在函数中正确递增,但这当然会让我回到第一页......
我确信还有其他方法可以做到这一点,但我只是希望这可以使用JSP ...任何想法
<!DOCTYPE html>
<html>
<head>
<%! int n = 0;%>
<script>
function loadDoc() {
<% n = n+1; %>
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","page<%=n%>.jsp",true);
xmlhttp.send();
}
</script>
</head>
<body>
<div id="myDiv"><h2>Using AJAX to display next page</h2></div>
<button type="button" onclick="loadDoc()">Change Page</button>
</body>
</html>
答案 0 :(得分:1)
n为0。你需要保存n。尝试使用
<input type="hidden" value="0" id="countvariable" />
在你的html某处。
然后在loadDoc()中放入
var n = 1 + parseInt(document.getElementById("countvariable").value);
document.getElementById("countvariable").value = n;
这应该保存你的变量。另外,parseInt是必须的,否则javascript会将2加在一起,你将得到10作为n而不是1。
更新:如果您想在一定数量的页面后返回,请将其添加到最后。
if(n == 2)
{
document.getElementById("countvariable").value = 0;
}