2016-03-08 62 views
0

我有一个正在工作的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->消息数据。我正在考虑为每一列做这件事,然后把它放到数据表中。

下面是数据表代码:

$(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" } 

但它不工作。

如何从查询中获取数据并将其放入数据表?

+0

'{数据:?““}'试试这个 – Gayathri

+0

当我这样做时,我有一个”Unexpected token ILLEGAL“ – Komarzer

+0

然后将值赋给变量,比如'var a =”<?php echo json_encode($ arrayMess);?>“并添加'variab le a' in array – Gayathri

回答

0

数据表中提取数据以JSON的形式,所以干脆json_encode你的数组你的任务将完成

+0

我做到了,但当我这样做:{data:“<?php echo $ arrayMess?>”}我有'意外的标识符' – 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); 
} 

在视图的数据表部分添加此代码,

<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