在网格中显示JSON输出?

时间:2013-12-04 03:09:47

标签: mysql codeigniter kendo-ui

你可以帮我解决我的问题吗?我需要绑定我的mysql表中的数据。我可以得到json值,但我不能在网格中显示它。

这就是我的所作所为:

<script>
    $(document).ready(function () {
        $("#grid").kendoGrid({
            dataSource:{
                transport: {
                    read: "<?php echo site_url('member/getMember'); ?>",
                    dataType: "jsonp"
                },
                schema:{
                    data: "data"
                }
            },
            height: 500,
            scrollable: true,
            selectable: true
        });
    });
</script>

我的控制器功能:

    public function getMember(){

        $g = $this->members_model->getAllMember();

        echo json_encode($g->result_array());

    }

我的模特功能:

   public function getAllMember(){

        $sql = "SELECT * FROM member";
        $result = $this->db->query($sql);

        return $result;

    }

2 个答案:

答案 0 :(得分:1)

写“ json ”而不是“ jsonp

<script>
    $(document).ready(function () {
        $("#grid").kendoGrid({
            dataSource:{
                transport: {
                    read: "<?php echo site_url('member/getMember'); ?>",
                    dataType: "json"
                },
                schema:{
                    data: "data"
                }
            },
            height: 500,
            scrollable: true,
            selectable: true
        });
    });
</script>

答案 1 :(得分:0)

您确定您的模型方法是返回数据吗?你的模型方法不应该这样吗?

public function getAllMember() {
    $sql = "SELECT * FROM member";
    $query = $this->db->query($sql);
    return $query->result()
}

$这 - &GT; DB-&GT;查询(SQL $); &lt; - 这本身不会返回数据。

<强>更新

对不起。我刚刚注意到你在控制器方法中得到了结果。所以,你的模型方法很好。

您不应该从控制器回显任何内容。永远。永远不要那样做。让视图层处理它。

在控制器中渲染视图,如下所示:

public function getMember(){

    $g = $this->members_model->getAllMember();
    $data = $g->result_array();
    $this->load->view('path/to/view/file', $data);

}

上面的代码可以使用,但你应该在模型层中使用result_array() - 而不是控制器。

您可以粘贴视图文件的其余部分吗?我认为这个问题可能特定于kendoGrid的jQuery插件,但我会看一点。