ajaxを介してテーブルをフェッチする際に問題が発生しました。これが私のajax関数です:
function search() {
var JobFunction_Id=document.getElementById("JobFunction_Id").value;
var JobFamily_Id=document.getElementById("JobFamily_Id").value;
var flag=0;
var newreq=createRequest();
if(JobFunction_Id!='' && JobFamily_Id!='') { flag=1; }
if(flag==1) {
var url=("Talent_S_New.php?JobFunction_Id="+JobFunction_Id+"& JobFamily_Id="+JobFamily_Id);
newreq.onreadystatechange=function() {
alert('hi');
if(newreq.readyState==4 && newreq.status==200) {
if(newreq.responseText!='') {
document.getElementById("display_result").innerHTML =newreq.responseText; }
//else {
// document.getElementById("display_result").innerHTML =newreq.responseText;
//}
}
}
newreq.open("GET",url,true);
newreq.send();
}
}
このページからテーブル情報を含む出力変数をフェッチしようとしています。
echo('<table style="border:1px solid red" >');
echo('<th>');
echo('First Name');
echo('</th>');
echo('<th>');
echo('Last Name');
echo('</th>');
echo('<tr>');
echo('<td style="border:1px solid red">');
foreach($Allemp as $key=>$value) {
if (array_key_exists('Error', $Allemp))
{ echo($value); }
else
{ echo($value["Emp_FirstName"]); }
//echo('</td>');
//echo('<td style="border:1px solid red">');
if (array_key_exists('Error', $Allemp))
{ echo($value); }
else
{ echo($value["Emp_LastName"]); }
}
echo('</td>');
echo('</tr>');
echo('</table>');
上記のajaxがなくても、コードは正常に機能します。あなたは観察することができますalert('hi')
。そのアラートを出すと、if(newreq.readyState==4 && newreq.status==200)
ループに入り、結果が1秒間表示され、再び消えます。foreachループbcosに入り、アラートが5回表示され、結果が1秒間表示されて消えると思います。これを修正するアイデアはありますか?