使用AJAX返回json数组

时间:2013-11-17 08:41:31

标签: 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'
);

这是do_register()方法的结尾:

if( $_REQUEST['format']=='JSON' ){
$jsonHelper=Loader::helper('json'); 
echo $jsonHelper->encode($registerData);
die;
}

$registerData变量包含我需要的所有数据。我希望函数在ajax调用后返回它。但是,当我指定dataType:'json'时,不会返回任何内容。有什么建议吗?

4 个答案:

答案 0 :(得分:1)

我认为您的问题在于网址

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

你也可以在php部分使用以下行来获取json值

header('Content-Type: application/json');

答案 1 :(得分:0)

我想问题就在这里:

'<?php echo $this->url('/register', 'do_register')?>',使用引号。

使用双引号和单引号:

"<?php echo $this->url('/register', 'do_register')?>",

答案 2 :(得分:0)

不可能在没有任何描述的情况下收到正确的建议。

你最好粘贴更多的php&amp; javascript代码,有更多的上下文,事情很简单。

另一个建议是,混合编码很糟糕。用PHP模板如Smarty分离javascript和php。

var data = $('form#registration-form').serialize();
$.post(
'<?php echo $this->url('/register', 'do_register')?>',
function(data) {
 alert(data);
},
'json'
);

上面代码的源文件是php文件吗?

使用firebug进行调试以捕获天气发送的ajax请求

答案 3 :(得分:-1)

为什么要使用JSON帮助器?

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

它内置于php。