我正在尝试打印PHP返回的JSON数组,以便在jQuery中打印,但没有运气。
PHP代码
$json = array();
$res = "";
foreach($cor as $service){
$res .= "Some Divs.... long HTML response here";
}
$json['responses'] = $res;
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
jQuery代码
$(document).delegate('#button', 'click', function() {
var $this = $(this);
$.ajax({
url: 'url',
type: 'POST',
dataType: 'json',
data: $("#form").serialize(),
beforeSend: function() {
$this.button('loading');
},
complete: function() {
$this.button('reset');
},
success: function(json) {
$("#resp").html(json['responses']);
console.log(json['responses']);
},
error: function(data, status, error ) {
console.log(data);
console.log(status);
console.log(error);
}
});
});
在上面,我在控制台console.log(json['responses']);
中获得输出。我可以在控制台中看到正确的HTML。
但是$("#resp").html(json['responses']);
的Div没有任何要显示的内容。 :(
#resp
,是的,它存在于页面上。
不是很奇怪和令人沮丧。 :(
网络标签截图:
答案 0 :(得分:0)
1-使用" echo json_encode($json);
"而不是这个
$ this-> response-> addHeader(' Content-Type:application / json');
$这 - >响应 - > setOutput(json_encode($ JSON));
2-更改代码
success: function(json) {
$("#resp").html(json.responses);
console.log(json.responses);
},