带有JSON的DataTable数据集

时间:2016-05-26 15:28:36

标签: php json datatable html-table

我正在尝试使用DataTable来显示我的JSON的所有字段,但我不明白如何使用它。

我只需要如何正确填充数据集来读取数据。

<script>
        <?php
            var jqxhr = $.ajax({url: api_ricerca_ingredienti, type: "GET",dataType: "json", data: {all: 1, ln : "it",completo:"-1",conteggio: 1}} )
              var max=json.items.length;
              for (i=0;i<max;i++){
                var el=json.items[i];
              }
              $(".risultato_ricerca").click(function() {
                carica_ingrediente($(this).attr('data-id'));
              });
            })
            <?php }?>

            var dataSet = [
              /*HOW?*/
            ];

            $(document).ready(function() {
              $('#example').DataTable( {
                data: dataSet,
                columns: [
                  { title: "Nome" },
                  { title: "Stato" },
                  { title: "Home" },
                  { title: "Utente" },
                  { title: "Mi piace" },
                  { title: "Contributi" }
                ]
              } );
            } );
            </script>
            <table id="example" class="table table-responsive table-hover table-dynamic filter-head"></table>

2 个答案:

答案 0 :(得分:1)

首先,关于您的代码的两条评论。 正如@Patrick Q所说,你的PHP标签是没用的:你正在编写Javascript,PHP是另一件与你的代码无关的事情,所以删除^(?=.*[0-9].*)(?=.*[A-Za-z].*)([0-9A-Za-z]\1{3}){8,15}$ <?php

然后,我无法理解这段代码:

<?php }?>

这对于完全没用。循环遍历for (i=0;i<max;i++){ var el=json.items[i]; } 中的每个元素而不执行任何操作。最后,您只需将最后json.items存储在json.items中(甚至不在代码中使用el)。

顺便提一下,你的主要问题是: 如official documentation中所述,您的dataSet必须包含表格中每一行的数组:

el

此示例将创建两个相同的行,其中包含随机数据。

假设你的json中的每个项目都有var dataSet = [ ["john","italy","home","john",15,20], ["john","italy","home","john",15,20] ] 个字段,你需要这样的东西:

name country home user likes contribs

答案 1 :(得分:0)

对不起伙计们。我已经截断了我的普通代码。现在,数据阵列的构建就像一个魅力。我对控制台错误表示怀疑: &#34; jquery.dataTables.min.js:5未捕获的TypeError:无法读取属性&#39; aDataSort&#39;未定义&#34;

我无法显示我的行。根据您的意见,问题是什么?

谢谢!

<script>
< ?php
if (isset($_GET) && isset($_GET['id'])){
             ?>
             $( document ).ready(function() {
               carica_ingrediente('<?php echo $_GET['id'];?>');
            });
          <?php }else {?>
            $('#query').keypress(function(e) {
              if (e.keyCode == $.ui.keyCode.ENTER) {
                $('#cerca').click();
              }
            });
          $(document).ready(function() {
              var jqxhr = $.ajax({url: api_ricerca_ingredienti, type:   "GET",dataType: "json", data: {all: 1, ln : "it",completo:"-1",conteggio: 1}} )
              .done(function(json) {
                if (json.res==0){
                  alert( "Inserisci una parola per iniziare la ricerca " );
                  return;
                }
                var dataSet = [];
                for (i=0;i<json.items.length;i++){
                  var el = [json.items[i].nome,json.items[i].completo, json.items[i].home, json.items[i].utente, json.items[i].likes, json.items[i].countingredienti];
                  dataSet[i] = el;
                  console.log(el);
                }
                $(".risultato_ricerca").click(function() {
                  carica_ingrediente($(this).attr('data-id'));
                });

                $(document).ready(function() {
                  $('#example').DataTable( {
                    data: dataSet,
                    columns: [
                      { title: "Nome" },
                      { title: "Stato" },
                      { title: "Home" },
                      { title: "Utente" },
                      { title: "Mi piace" },
                      { title: "Contributi" }
                    ]
                  } );
                } );
              })
              .fail(function() {
                alert( "error" );
              });

            });

            <?php }?>
            </script>