【问题标题】:Data is not place in datatable, data is coming from ajax call数据不在数据表中,数据来自 ajax 调用
【发布时间】:2016-11-11 05:53:33
【问题描述】:

我有来自 ajax 调用的 ajax json 数据,响应是 json_encode。

$user=array('id'=>$val->id,'username'=>$name,'contactno'=>$val->contact_no);
echo json_encode($user);

我正在访问它并将其放入数据表中。 我有脚本代码

$( document ).ready(function() {
    $.ajax({
    type: "POST",
    url: '<?php echo base_url(); ?>list/people',
    success: function(response) {   
        $('#example').dataTable({
            "bProcessing": true,
            "bDestroy": true,
            "data": response, // <-- your array of objects
            "columns": [
                {"data": "id"}, 
                {"data": "username"},
                {"data": "contactno"}
             ]
        });
    }, 
    });
});

我无法获取数据表中的 json 数据。请帮忙

【问题讨论】:

  • 控制台中是否出现任何错误?
  • 控制台中没有显示错误
  • 如果您在发送数据时在浏览器控制台中没有收到 JS 错误,则问题出在 PHP 代码中。请添加位于 [base_url]/list/people] 的 PHP 脚本,并将数据写入数据库。没有它就不可能回答你的问题。
  • $content_array = $this->list_model->users_list(); //print_r($content_array);死; foreach($content_array as $key=>$val) { $id = $val->id; $name = $val->user_name; $contact=>$val->contact_no; $user=array('id'=>$val->id,'username'=>$name,'contactno'=>$val->contact_no); } echo json_encode(array("data"=>$user));
  • 我的模型:public function users_list(){ $this->db->select("*"); $this->db->from('table'); $this->db->order_by('id','desc'); $query = $this->db->get();返回$查询->结果(); }

标签: javascript php jquery ajax datatable


【解决方案1】:

使用数据表 ajax 语法

$('#example').dataTable( {
  "ajax": {
    "url": "<?php echo base_url(); ?>list/people",
    "type": "POST"
  }
});

php:

$user =[];
$content_array = $this->list_model->users_list(); 

foreach($content_array as $key=>$val) { 
 $id = $val->id;
 $name = $val->user_name;
 $contact=>$val->contact_no;
 $user[]=array('id'=>$val->id,'username'=>$name,'contactno'=>$v‌​al->contact_no);
}   
echo json_encode(array("data"=>$user));

【讨论】:

  • 你可以在你的 xhr 请求中发布截图吗?
【解决方案2】:

您可以为此使用 ajax 数据表

$(document).ready(function() {
    $('#example').DataTable({
      "processing": true,
      "serverSide": true,
      "ajax":{
          url : '<?php echo base_url(); ?>list/people'
          type: "post",  // method  , by default get,
          data : function ( d ) {
                //any data that you want to send with request
                /*
                  var dt_params = {'myKey' : 'MyValue'};
                  $.extend(d, dt_params);
                */
             },
          complete : function(response){
              // you will receive data here
          }
      }
    });
  });

来自服务器的数据将与

$user=array('id'=>$val->id,'username'=>$name,'contactno'=>$val->contact_no); echo json_encode($user);退出;

【讨论】:

    【解决方案3】:

    你的数组必须是这种格式

    $user = array(
        array('id'=>$val->id,'username'=>$name,'contactno'=>$val->contact_no)
    );
    

    因为您使用的是数据表。

    数据表属性“数据”在javascript中必须是这样的格式

    [{
        'id': 1,
        'username': 'my username',
        'contact_no': 'my contact no.'
    }]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-25
      • 2019-07-26
      • 1970-01-01
      相关资源
      最近更新 更多