0

我觉得我的问题很奇怪……我在这里学习,并想使用 AJAX & JSP 来按顺序显示其他一些 JSP 页面。即点击按钮:显示page1.jsp,再次点击按钮:显示page2.jsp,……</p>

我让 JSP 在页面后添加“1”,而 JSP 确实增加了变量。但它不会改变超过第 1 页的值...</p>

如果我执行 location.reload(),它会在函数中正确递增,但这当然会让我回到第一页……</p>

我确信还有其他方法可以做到这一点,但我只是希望它能够使用 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>
4

1 回答 1

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;
}
于 2013-02-15T21:22:55.663 回答