2013-02-15 61 views
0

我觉得我的问题很奇怪......我在这里学习,并且想用AJAX & JSP来按顺序显示其他一些JSP页面。 即点击按钮:page1.jsp显示,再次点击按钮:page2.jsp显示,...ajax javascript函数刷新

我得到的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> 

回答

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; 
} 
+0

感谢您的快速回复! 我想我明白你要去哪里了,再次我在这里学习...... 我看到这不适用于我的JSP特定元素,所以现在我可以放弃这个想法 如何使用该新var n作为.open()中的参数?我发誓我试图看看,但我的问题是如此基本,结果就是没有它... ?? ??我如何获得这里的变量n? xmlhttp.open(“GET”,“page ?? n ??。jsp”,true); – user2076995 2013-02-15 21:37:07

+0

我想通了!谢谢!!!!!!!!! – user2076995 2013-02-15 21:43:46