使用 AJAX 返回 json 数组

Returning a json array using AJAX

本文关键字:数组 json 返回 AJAX 使用      更新时间:2023-09-26

这是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 调用后返回它。但是,当我指定数据类型:"json"时,不会返回任何内容。有什么建议吗?

我认为你的问题出在网址上

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

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

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

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

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

使用双引号和单引号:

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

几乎没有

描述就不可能收到正确的建议。

你最好粘贴更多的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'
);

上面代码的这个源文件是一个PHP文件?

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

为什么使用 JSON 助手?

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

它内置在 PHP 中。