2016-03-08 4 views
0

У меня есть рабочий Datatable на данный момент, который напрямую берет данные из моих таблиц. Дело в том, что теперь я хочу заполнить другой Datatable, используя данные из нескольких таблиц. У меня уже есть рабочий sql-запрос, который возвращает нужные мне данные. То, что я собирался сделать, это поместить все данные столбцов, которые я хочу в разные массивы, а затем поместить их в данные.Данные данных из массива?

$data = $this->log_send_model->getListDetailled($conditions,array('from'=>$this->uri->segment(4)),array('orderBy'=>array('id_log_send'=>'desc'))); 
$arrayMess = array(); 
    // Other array for columns 

    foreach ($data as $value) { 
     # code... 
     array_push($arrayMess, $value->message); 
     //var_dump($arrayMess); 

} 

Здесь я хочу, чтобы в одном столбце были все данные сообщения $ value->. Я думал об этом для каждого столбца, а затем помещал его в datatable.

Вот Datatable код:

$(document).ready(function() { 

$("#datatable").dataTable({ 
    processing: true, 
    serverSide: true, 
    ajax: { 
     "url": "<?php echo base_url()."DatatableControl/dataTable"; ?>", 
     "type": "POST" 
    }, 
    columns: [ 
    { data: "id_log_send" }, 
    { data: "date" }, 
    { data: "recipient" }, 
    { data: "message" }, 
    { data: "etat" } 
    ] 
    }) 
}); 

Как вы можете видеть, для каждого столбца связать его столбец таблицы в базе данных. Я хочу поместить массив в эти параметры данных. Что-то вроде:

{ data: "$arrayMess" } 

Но это не сработает.

Как я могу взять данные из запроса и поместить его в Datatable?

+0

'{данные:« "}' попробуйте это – Gayathri

+0

Когда я это сделаю, у меня есть «Неожиданный токен ILLEGAL» – Komarzer

+0

, тогда присвойте значение переменной как «var a =» "' и добавьте 'variab le a' in array – Gayathri

ответ

0

Таблицы данных принимает данные в виде JSON так просто json_encode ваш массив ваша задача будет сделано

+0

Я сделал это, но когда я это сделаю: {data: ""} У меня есть «Неожиданный идентификатор» – Komarzer

0

Я думаю, что вы следуете MVC архитектуры, то функция вы звоните с точки зрения использования Ajax должен возвращать JSon выход формиата.

В контроллере,

public function datatable(){ 
     $data = $this->log_send_model->getListDetailled($conditions,array('from'=>$this->uri->segment(4)),array('orderBy'=>array('id_log_send'=>'desc'))); 
     $arrayMess = array(); 
      // Other array for columns 

      foreach ($data as $value) { 
       # code... 
       array_push($arrayMess, $value->message); 
       //var_dump($arrayMess); 

     } 
     echo json_encode($arrayMess); 
} 

В вид DataTable части добавить этот код,

<table id="datatable"> 
     <thead> 
      <tr> 
        <th>id_log_send</th> 
      <th>Date</th> 
         <th>Recipient</th> 
         <th>Message</th> 
         <th>Etat</th> 
      </tr> 
    </thead> 
    </table> 
    <script> 
     $(document).ready(function() { 
     if (! $.fn.dataTable.isDataTable('#datatable')) { 
       var table = $("#datatable").DataTable(); 
      } 
     $.ajax({ 
      "url": "<?php echo base_url()."DatatableControl/dataTable"; ?>", 
      "type": "POST", 
      success:function(data){ 
      $.each(data,function(i,item){ 
         $('#datatable').dataTable().fnAddData([ 
          "<tr><td>"+item.id_log_send+"</td>", 
          "<td>"+item.date+"</td>", 
          "<td>"+item.recipient+"</td>", 
          "<td>"+item.message+"</td>", 
          "<td>"+item.etat+"</td></tr>"]); 
        }); 
      },error:function(error){ console.log(error);} 
     }); 
}); 
</script> 

Я надеюсь, что это поможет вам

+0

У меня есть внутренняя ошибка 500, «Uncaught TypeError: Аргумент 1 передан в CI: Исключения. .... ". – Komarzer

+0

, в какой момент у вас есть эта ошибка? – Gayathri

+0

Когда я использую метод dataTable от контроллера – Komarzer

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