无法在jQuery中打印PHP JSON数组

时间:2016-09-09 20:53:52

标签: javascript php jquery json

我正在尝试打印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,是的,它存在于页面上。

不是很奇怪和令人沮丧。 :(

网络标签截图:

enter image description here

1 个答案:

答案 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);
  },