0

私の質問は変だと思います... 私はここで学んでおり、AJAX & JSP を使用して他の JSP ページを順番に表示したいと考えています。つまり、ボタンをクリック: page1.jsp が表示され、もう一度ボタンをクリックすると、page2.jsp が表示され、…</p>

ページの後に「1」を追加するようにJSPを取得しましたが、JSPは変数をインクリメントします。しかし、ページ 1 以降の値は変更されません…</p>

location.reload() を実行すると、関数内で正しくインクリメントされますが、当然、ページ 1 に戻ります…</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 を一緒に追加し、1 ではなく n として 10 を取得します。

更新:一定量のページの後に戻りたい場合は、これを最後に追加してください。

if(n == 2)
{
   document.getElementById("countvariable").value = 0;
}
于 2013-02-15T21:22:55.663 に答える