繁体   English   中英

无法将值从PHP传递到AJAX

[英]Unable to pass Value from PHP to AJAX

我对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代码的一部分(用于测试):

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);
}

我希望你们中的一些可以帮助我:)

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

//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);
}

在此进一步阅读和更详细的解释:j 查询dataType json的$ .ajax请求不会从PHP脚本检索数据

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

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

   //...

函数error: function alert(){"error";}还有另一个可能的问题error: function alert(){"error";}没有任何作用。 如果您的服务器脚本返回错误,则在这种情况下您将看不到任何内容。

将其更改为类似

error: function(){ alert("error"); }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM