2016-11-11 2 views
0

У меня есть данные ajax json от ajax-вызова и ответа json_encode.Данные не находятся в данных, данные поступают из ajax-вызова

$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 в DataTable. Пожалуйста, помогите

+0

Вы получаете какие-либо ошибки в консоли? – nicovank

+0

Ошибка в консоли – heema

+0

Если вы не получите JS-ошибку в консоли браузера при отправке данных, то проблема в PHP-коде. Добавьте PHP-скрипт, который находится в [base_url]/list/people] и должен записывать данные в базу данных. Без этого невозможно ответить на ваш вопрос. – SergeyLebedev

ответ

0

Используйте DataTable синтаксис АЯКС

$('#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)); 
+0

добавил .. но не получить данные в datatable .. – heema

+0

Сэр ничего не отображается ... – heema

+0

нет сэр. нет ошибки в консоли – heema

0

Вы можете использовать Ajax DataTable для этого

$(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); exit;

0

ваш массив должен быть в этом формате

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

, так как вы используете DataTable.

Datatable атрибут «данные» должны быть в формате, как это в JavaScript

[{ 
    'id': 1, 
    'username': 'my username', 
    'contact_no': 'my contact no.' 
}] 
Смежные вопросы