Javascript 使用AJAX返回json数组

Javascript 使用AJAX返回json数组,javascript,php,ajax,json,concrete5,Javascript,Php,Ajax,Json,Concrete5,下面是javascript: var data = $('form#registration-form').serialize(); $.post( '<?php echo $this->url('/register', 'do_register')?>', function(data) { alert(data); }, 'json' ); $registerData变量保存我需要的所有数据。我希望函数在ajax调用后返回它。但是,当我指定数据类型:“json”时,不会返

下面是javascript:

var data = $('form#registration-form').serialize();
$.post(
'<?php echo $this->url('/register', 'do_register')?>',
function(data) {
 alert(data);
},
'json'
);
$registerData
变量保存我需要的所有数据。我希望函数在ajax调用后返回它。但是,当我指定数据类型:“json”时,不会返回任何内容。有什么建议吗?

为什么要使用JSON帮助程序

json_decode(string $json);
json_encode(mixed $value); //normally array...

它是内置在php中的。

我想问题在这里的某个地方:

”,
中使用引号

使用双引号和单引号:


我想你的问题出在url上

$.post(
'<?php echo $this->url("/register", "do_register"); ?>?format=JSON',
function(data) {
 alert(data);
},
'json'
);

很少描述就不可能得到正确的建议

你最好粘贴更多的php和javascript代码,有更多的上下文,简单一点

另一个建议是,混合编码是不好的。使用php模板(如Smarty)分离javascript和php

var data = $('form#registration-form').serialize();
$.post(
'<?php echo $this->url('/register', 'do_register')?>',
function(data) {
 alert(data);
},
'json'
);
var data=$('form#registration form').serialize();
美元邮政(
'',
功能(数据){
警报(数据);
},
“json”
);
上面代码的这个源文件是php文件吗


使用firebug进行调试以捕获ajax请求是否已发送

如果直接调用php,它会输出什么?你们能提供加载器的详细信息和它返回的内容吗?控制台中有错误吗?为什么第三个参数是
dataType:'json'
,它应该是
“json”
,如果我不使用ajax,它将返回一个包含HTML表单和所有输出数据的单独页面。这段代码返回一个JSON数组,其中包含我需要的所有输出数据。这没有帮助。Chrome中的response选项卡显示返回的整个页面。如果
$\u REQUEST['format']=='json'
为true,则将返回json。您的url是否满足此条件?请在url'?format=JSON'中尝试此操作
header('Content-Type: application/json');
var data = $('form#registration-form').serialize();
$.post(
'<?php echo $this->url('/register', 'do_register')?>',
function(data) {
 alert(data);
},
'json'
);