无法将值从PHP传递到AJAX
我对AJAX和PHP之间的通信有问题。我已经试过了相关问题和答案中的所有代码,但都不起作用。此代码应该从同一服务器上的PHP文件接收JSON字符串,并在HTML区域中显示值无法将值从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
$(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)
//...