我在通过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)
循环,结果将显示一秒钟,然后再次显示消息。我认为它进入foreach循环bcos它显示警报5次并显示结果一秒钟然后消失。有什么想法解决这个问题吗?
答案 0 :(得分:1)
由于您将此标记为jQuery,我很确定大部分内容都可以更改为接近:
var url=("Talent_S_New.php?Function_Id="+JobFunction_Id+"&JobFamily_Id="+JobFamily_Id);
$.ajax(url, {
type: "GET",
success: function(data, status) {
alert("success!");
$("#display_result").html(data); // Incoming data placed in 'display_result'
},
error: function(jqXHR, textStatus){
alert("error..");
}
});
这是否解决了您的问题,我不知道。但是你把它标记为jQuery,我没有在你的代码中看到一个jQuery调用。
答案 1 :(得分:0)
为什么不使用jQuery AJAX?
这是一个例子:
$.ajax({
type: "GET",
url:'Talent_S_New.php',
data:$('form').serialize,
complete: function() { alert('hi'); }
success: function(data) {
$('#display_result').html(data.responseText);
}
});