以下で同様の問題が発生しました 。2つのAJAXコマンドが機能しますが、最後の「responseText」しか表示されません。
しかし、私はフィールドの配列を使用しているので、それが異なるかどうかはわかりません。テストのために、これを上部に追加して、いくつかのデータを定義しました。
<?php
$a = array('star_wars','marvel','board_games','','The_Han_Solo_Omnibus');
$b = implode("~",$a);
$count = count($a);
?>
私は彼が定義した上記の答えを見ました:var httpRequest; 問題を解決します。試しました--varxmlhttp; しかし、それはそれをしませんでした。
最後のセクションだけでなく、すべてのセクションをロードする方法について何かアイデアはありますか?たくさんの遅延を追加しましたが、何も機能していません。
ありがとう
<script>
function showDiv(a)
{
var temp = new Array();
var delay = 2000; // 1 second
var result = 'loading'; // the result from your AJAX response
var xmlhttp;
temp = a.split('~');
for(i=0;i<temp.length;i++)
{
alert(temp[i]);
divno = i + 1;
currentdiv = "loadArea" + divno;
alert (currentdiv);
//var pageNumber = 1;
//eval("var text" + pageNumber + "=123;");
//alert(text1);
if (temp[i]=="")
{
document.getElementById(currentdiv).innerHTML=""; //increment
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();//increment
alert ("usingchrome");
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");//increment
//alert ("using IE");
}
xmlhttp.onreadystatechange=setTimeout(function() //increment
{
alert ("inreadystate");
if (xmlhttp.readyState==4 && xmlhttp.status==200) //increment
{
if (temp[i] !="") {
setTimeout(function() {
document.getElementById(currentdiv).innerHTML=xmlhttp.responseText; //increment
}, delay);
alert ('valueisgood');
}
}
}, delay);
if (temp[i] !="") {
url = "http://zocreative.com/load.php?f="+temp[i];
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
}
}
</script>
</head>
<body id="page1" onload="showDiv('<?php echo $b; ?>');">
<?php
$i = 1;
while ($i <= $count) {
echo ("<div id='loadArea". $i ."'><br />
<!-- AJAX content will load here-->
loading ... ". $i ."
</div>");
/* the printed value would be
$i before the increment
(post-increment) */
$i++;
}
?>
<div id="note"></div>