Php 通过Ajax获取变量
我在通过ajax获取表时遇到问题。 以下是我的ajax函数:Php 通过Ajax获取变量,php,javascript,jquery,sql,ajax,Php,Javascript,Jquery,Sql,Ajax,我在通过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(JobF
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>');
echo(“”);
回声(“”);
echo(“名字”);
回声(“”);
回声(“”);
echo(“姓氏”);
回声(“”);
回声(“”);
回声(“”);
foreach($Allemp作为$key=>$value){
如果(数组\键\存在('Error',$Allemp))
{echo($value);}
其他的
{echo($value[“Emp_FirstName”]);}
//回声(“”);
//回声(“”);
如果(数组\键\存在('Error',$Allemp))
{echo($value);}
其他的
{echo($value[“Emp_LastName”]);}
}
回声(“”);
回声(“”);
回声(“”);
如果没有ajax,上述代码可以正常工作。您可以观察
警报('hi')
。如果我将该警报放入If(newreq.readyState==4&&newreq.status==200)
循环,结果将显示一秒钟并再次消失。我认为它将进入foreach循环bcos,它显示警报5次,显示结果一秒钟后消失。有没有办法解决这个问题?既然您将其标记为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调用。为什么不使用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);
}
});
当您登录
newreq.readyState
和newreq.status
而不是发出“hi”警报时,您的Javascript控制台会看到什么?在PHP代码完成执行之前,您的Javascript不会收到任何内容,因此它与进入foreach循环无关。如果直接在浏览器中加载PHP脚本(转到PHP脚本的URL),会得到什么?如果将其放入if语句中,是否会看到警报('hi')
?代替document.getElementById('display_result')…
部分,尝试console.log('response text='+newreq.responseText)
并查看浏览器控制台中显示的内容(通常点击F12查看)。如果我不使用“alert”,您好jasper我看不出有任何东西它根本不加载输出。好吧,讽刺3我要试试你的步骤,让你知道。谢谢你的回复亲爱的。。对不起,我认为是我的错。。但我需要通过javascript、ajax而不是jquery来实现