Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript datatables的ajax.dataSrc不工作_Javascript_Php_Jquery_Ajax_Datatables - Fatal编程技术网

Javascript datatables的ajax.dataSrc不工作

Javascript datatables的ajax.dataSrc不工作,javascript,php,jquery,ajax,datatables,Javascript,Php,Jquery,Ajax,Datatables,我正在尝试对表数据使用dataSrc属性或操作方法。 为了了解如何操作数据,我正在尝试以下简单代码 test.php <!DOCTYPE html> <html> <head> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />

我正在尝试对表数据使用dataSrc属性或操作方法。 为了了解如何操作数据,我正在尝试以下简单代码

test.php

<!DOCTYPE html>  
 <html>  
      <head>  
           <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />  
           <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>  
           <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>  
           <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/r/bs-3.3.5/jq-2.1.4,dt-1.10.8/datatables.min.css"/>  
           <script type="text/javascript" src="https://cdn.datatables.net/r/bs-3.3.5/jqc-1.11.3,dt-1.10.8/datatables.min.js"></script>  

      </head>  
      <body>  
           <br /><br />  
           <div class="container">  
                <table id="data-table" class="table table-bordered">  
                     <thead>  
                          <tr>  
                               <th>Mobile</th>  
                               <th>Name</th>  
                               <th>Email</th>
                               <th>Credits</th>
                          </tr>  
                     </thead>  
                </table>  
           </div>  
      </body>  
 </html>  
  <script>  

 $(document).ready(function(){  

      $('#data-table').DataTable({  

           "ajax"     :     {
             "dataSrc": function ( json ) {
                var array = {};
                  for ( var i=0, ien=json.length ; i<ien ; i++ ) {
                    array[i] = json[i];//'<a href="/message/'+json[i][0]+'>View message</a>';
                  }
                  console.log(json);
                  console.log(JSON.stringify(json));
                return (JSON.stringify(json));
              }
            },  

           "columns"     :     [  

                {     "data"     :     "Mobile",
                 "defaultContent": "<i>Not set</i>"},  

                {     "data"     :     "Name",
                 "defaultContent": "<i>Not set</i>"},  

                {     "data"     :     "Email",
                 "defaultContent": "<i>Not set</i>"},

                {     "data"     :     "Credits", 
                 "defaultContent": "<i>Not set</i>"},

           ]  
      });  
 }); 
 </script>  
但是,data.json有:

{
    "data": [{
        "Mobile": "1234567890",
        "Name": "test",
        "Email": "test@gmail.com",
        "Credits": "50",
    }, {
        "Mobile": "8200469963",
        "Name": "amit",
        "Email": "adsf@gmail.com",
        "Credits": "0",
    }, {
        "Mobile": "8989899889",
        "Name": "sdfsd",
        "Email": "sdfsd",
        "Credits": "100",
    }, {
        "Mobile": "9889812580",
        "Name": "box",
        "Email": "asdfadfs@gmail.com",
        "Credits": "98",

    }, {
        "Mobile": "9999999999",
        "Name": "user9",
        "Email": "user9@gmail.com",
        "Credits": "0",
    }]
}

另外,如果我完全删除dataSrc部分。我得到了正确的结果。我在dataSrc中做错了什么?

如果您只需要为电子邮件地址创建链接,请不要使用
dataSrc
。删除
dataSrc
并改用option。

删除dataSrc组件时,将其设置为将数据作为数组读取。您只是没有指定需要使用
json.data
而不是
json
的数据对象

$('#data-table').dataTable( {
    "ajax": {
    "url": "data.json",
    "dataSrc": function ( json ) {
        for ( var i=0, ien=json.data.length ; i<ien ; i++ ) {
            json.data[i][0] = '<a href="/message/'+json.data[i][0]+'>View message</a>';
        }
        return json.data;
     }
   }
} );
$(“#数据表”)。数据表({
“ajax”:{
“url”:“data.json”,
“dataSrc”:函数(json){
对于(var i=0,ien=json.data.length;i
$('#data-table').dataTable( {
    "ajax": {
    "url": "data.json",
    "dataSrc": function ( json ) {
        for ( var i=0, ien=json.data.length ; i<ien ; i++ ) {
            json.data[i][0] = '<a href="/message/'+json.data[i][0]+'>View message</a>';
        }
        return json.data;
     }
   }
} );