2013-12-04 4 views
0

вы можете помочь мне с моей проблемой? Мне нужно привязать данные из моей таблицы mysql. Я могу получить значения json, но я не могу отобразить его в сетке.Отображение вывода 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; 

    } 

ответ

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> 
+0

Хороший улов. Я этого не заметил. – Charlie

0

Вы уверены, что ваш метод модель возвращает данные? Не должен ли ваш модельный метод выглядеть так?

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

$ this-> db-> query ($ sql); < - это само по себе не возвращает данные.

Update

К сожалению. Я просто заметил, что вы получаете результаты в методе контроллера. Итак, вы модельный метод хорош.

Вы не должны ничего эха от своего контроллера. Когда-либо. Никогда не делай этого. Пусть слой представления обрабатывает это.

Рендер ваш взгляд в контроллере, как это:

public function getMember(){ 

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

} 

Код выше будет работать, но вы действительно должны использовать result_array() в модели слоя - не контроллер.

Можете ли вы вставить остальную часть своего файла вида? Я думаю, что эта проблема может быть специфичной для jQuery-плагина kendoGrid, но я посмотрю немного больше.

Смежные вопросы