Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过Ajax获取变量_Php_Javascript_Jquery_Sql_Ajax - Fatal编程技术网

Php 通过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

我在通过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>');
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来实现