Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.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_Jquery_Ajax - Fatal编程技术网

无法将值从PHP传递到AJAX

无法将值从PHP传递到AJAX,php,jquery,ajax,Php,Jquery,Ajax,我对AJAX和PHP之间的通信有问题。我已经试过了相关问题和答案中的所有代码,但都不起作用。此代码应该从同一服务器上的PHP文件接收JSON字符串,并在HTML区域中显示值 $(document).ready(function(){ setInterval(ajaxcall, 1000); }); function ajaxcall(){ var data = $('#signup_form').serialize(); $.ajax({ type: "GET

我对AJAX和PHP之间的通信有问题。我已经试过了相关问题和答案中的所有代码,但都不起作用。此代码应该从同一服务器上的PHP文件接收JSON字符串,并在HTML区域中显示值

$(document).ready(function(){
    setInterval(ajaxcall, 1000);
});

function ajaxcall(){
var data = $('#signup_form').serialize();

    $.ajax({
        type: "GET",
        url: "test.php",
        data: data,
        dataType: 'json',
        success: function (data) {
            window.console.log("Success");
            document.getElementById("count").innerHTML = $('#time').html(data.time);
    },error: function alert(){"error";}
});}
当我在浏览器中执行脚本(使用调试模式)时,什么也不会发生。我认为这意味着“成功”方法存在问题

以下是我的PHP代码的一部分(用于测试):

($i=0;$i<50;$i++)的
{
睡眠(1);
return_json($argv[1]);
}
//返回html/javascript的所有值
函数return_json($a){
$json=array('time'=>$a);
echo json_encode($json);
}

我希望你们中的一些人能帮助我:)

您应该将内容类型添加到响应标题中:

//this line
header('Content-type: application/json');

for($i = 0; $i < 50; $i++){
    sleep(1);
    return_json($argv[1]);
}

//return all values for html/javascript
function return_json($a){
    $json = array('time' => $a);
    echo json_encode($json);
}
//这一行
标题('Content-type:application/json');
对于($i=0;$i<50;$i++){
睡眠(1);
return_json($argv[1]);
}
//返回html/javascript的所有值
函数return_json($a){
$json=array('time'=>$a);
echo json_encode($json);
}

进一步阅读和更详细的解释:j

函数
ajaxcall()
真的被调用了吗?尝试在开始时添加
console.log
调用,例如

function ajaxcall(){
   var data = $('#signup_form').serialize();
   console.log(' form data = %o', data)

   //...
另一个可能的问题是函数
错误:函数alert(){“error”}
没有任何可见的操作。如果服务器脚本返回错误,在这种情况下将看不到任何内容

把它改成


error:function(){alert(“error”);}

ajax调用是否确实返回了一些内容?使用firebug或simular检查您的ajax调用是否返回,使用“window.console”方法我应该能够每秒看到一些内容,但控制台中没有写入任何内容。您在哪里设置了来自$\u GET的变量$argv用于cli,我认为……对于ajax,使用superglobal$\u gets即使它可以工作,也可能输出大量不同的JSON对象或数组。不确定这是否会在客户端上形成有效响应。将所有数据收集到PHP中的一个位置,然后对所有数据执行一个json_encode命令,以形成一个连贯的对象/数组进行输出。其次,您没有在PHP中读取输入数据-您需要读取
$\u GET
数组的内容(并验证它!!!)。最后,
error:function alert(){“error”;}
应该是
error:function(){alert(“error”);}
我认为(虽然它也可以获取状态代码/消息并记录/提醒它们)。$argv只是PHP脚本的输入。谢谢你对错误部分的提示,现在可以了。但它仍然无法从我的PHP中获取数据。
function ajaxcall(){
   var data = $('#signup_form').serialize();
   console.log(' form data = %o', data)

   //...