2013-02-15 65 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