将Json数据从PHP发送到jQuery脚本以构建帖子Ajax表

时间:2017-06-24 18:03:37

标签: javascript php jquery json

这是我的代码的ajax部分

$.ajax({
                type: 'POST',
                url: 'get-planned-posts',
                dataType: 'json',
                success: function(data) {
                    $('div#alert').html(data)
                    $('div#alert').animate({top: '100'}, 'fast');
                    $('div#alert').fadeIn('slow');
                    $('div#alert').delay(1000).fadeOut('slow');
                },

服务器端PHP(Codeigniter)

$query = $this->Devloger_admin->get_planned_posts();
        $this->is_ajax();
        $this->output->set_header('Content-type:application/json;charset=utf-8');
        echo json_encode($query[1]['tytul']);

Query创建此结果数组:

array(3) {
  [0]=>
  array(3) {
    ["id"]=>
    string(2) "62"
    ["tytul"]=>
    string(1) "1"
    ["data_dodania"]=>
    string(10) "0000-00-00"
  }
  [1]=>
  array(3) {
    ["id"]=>
    string(2) "64"
    ["tytul"]=>
    string(1) "3"
    ["data_dodania"]=>
    string(10) "0000-00-00"
  }
  [2]=>
  array(3) {
    ["id"]=>
    string(2) "65"
    ["tytul"]=>
    string(1) "4"
    ["data_dodania"]=>
    string(10) "0000-00-00"
  }
}

问题出在我做的时候

echo json_encode($query[1]['tytul']);

它正确发送标题,在显示框中我们得到了#34; 3"根据结果​​数组,这是正确的。

但是当我喜欢的时候:

echo json_encode($query[1]);

它没有显示任何内容,空白。

下一步

echo json_encode($query);

再次空白。但那是整个阵列。我想发送整个数组,包含所有帖子,然后从中创建表格。但这里出了点问题,我无法弄清楚是什么。

json_encode从此result_array

创建的内容
[{"id":"62","tytul":"1","data_dodania":"0000-00-00"},{"id":"64","tytul":"3","data_dodania":"0000-00-00"},{"id":"65","tytul":"4","data_dodania":"0000-00-00"}]

1 个答案:

答案 0 :(得分:0)

成功回调中的data变量是一个javascript对象。你需要遍历它或对数组进行字符串化:

success: function(data) {
    $('div#alert').html(JSON.stringify(data));
},

这样的事情可能就是你想要的:

success: function(data) {
    var html = [];
    $.each(data, function(index, dataRow){
        html.push('<li>' + dataRow.id + ': ' + dataRow.tytul + '</li>');
    });
    $('div#alert').html(html.join(''));
},