2015-05-15 34 views
1

首先我必須HTML:創建表,如果從阿賈克斯的數據不是空

  <div class="showTable" style="display: none;"> 

      <table id="example" class="table table-responsitive" cellspacing="0" width="100%" style="margin-top:30px;"> 
     <thead> 
      <tr> 
       <th>ID</th> 
       <th>Broj računa</th> 
       <th>Kupac</th> 
       <th>Datum izdavanja</th> 
       <th>Rok za plaćanje</th> 
       <th>Status</th> 

       <th></th> 


      </tr> 
     </thead> 


    </table> 
      </div> 
      <div class="showInfo" style="display: none"> 
</div> 

之後,我寫JS:

$(document).ready(function() { 
    drawVisualization(); 

    }); 
function drawVisualization() { 

    console.log('proba'); 
    $.ajax({ 
      url: "getracuni.php", 
      type: "POST", 
      async: true, 
      dataType: "html", 

      success: function(json) { 
      console.log(json); 
      if (!json.data){ 
       json.data = []; 
       $('.showInfo').show(); 
      } else { 
      var podaci = json.data; 
      $('.showTable').show(); 
      showTable(podaci); 
      } 
      }, 
      error: function(data) { 
      console.log(data); 
      } 
     }); 
      }; 

所以在這裏我儘量讓這樣的: 1.如果從數據ajax不是空然後用函數showTable(podaci)創建數據表; 2.如果來自ajax的數據是空的,那麼只想顯示div類'showInfo'。

我showTable(podaci)函數是:

function showTable(podaci) { 
    $('#example').dataTable({ 

      data: podaci.data, 
        paging: false, 
        "dom":' <"search"f><"top"l>rt<"bottom"ip><"clear">', 
      bfilter: false, 
        "oLanguage": { 
    "sInfo": 'Ukupno _END_ računa.', 
    "sInfoEmpty": 'Nema podataka o računima', 
    "sEmptyTable": "Nemate račune, dodajte klikom na dugme ispod.", 
}, 
     // end , 
        "columns": [{ 
          "data": "ID" 
         }, { 
          "data": "br" 
         }, 
         { 
          "data": "kupac" 
         }, 
         { 
          "data": "datum" 
         }, 
         { 
          "data": "rok" 
         }, 
         { 
          "data": "status" 
         }, 
         { 
          "data": "akcija" 
         } 
        ], 
        "columnDefs": [ 
          { 
         "targets": 6, 
         "data": "akcija", 
         "render": function(data, type, full, meta) { 
          // return data; 
          return '<div style="float:right;"><div class="btn-group"><a href="#" class="btn btn-primary btn-sm dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Izmeni <span class="caret"></span></a><ul class="dropdown-menu"><li><a href="#">Izmeni</a></li><li><a href="#">Pošalji</a></li><li><a href="#">Opomeni</a></li><li><a href="#">Plaćeno</a></li><li><a href="#">Stoniraj</a></li><li><a href="#">Kopiraj</a></li><li><a href="#">Obriši</a></li></ul></div> <i data-toggle="modal" data-target="#delete" class="fa fa-times"></i></div>'; 
         } 
        }, 
          { 
         "targets": 0, 
         "visible":false 
          } 
    ] 
       }); 
} 

而且我得到了這個JSON格式從阿賈克斯數據:

{"data":[{"ID":1,"br":"1-2015","kupac":"ADAkolor","datum":"2015-05-19","rok":"2015-05-21","status":"placeno"},{"ID":2,"br":"2-2015","kupac":"Milenk","datum":"2015-05-27","rok":"2015-05-28","status":""}]} 

我認爲我寫的一切正常,但當我嘗試運行這段代碼我只是空白屏幕。所以,只要不會顯示有...

+0

當我沒有從阿賈克斯的數據回報是:{「數據」:空} –

回答

0

更改您的病情 if (!json.data)if (json.data!=null)

+0

HM,沒有,當json.data! = null然後我需要顯示錶 –

+0

我可以看到完整的HTML ..與進口?你有沒有在螢火蟲上發生任何錯誤? – DarkHorse

+0

正如我可以看到你的'$('。showInfo')。show()'只是沒有任何東西顯示。如果你想在沒有數據的情況下顯示table,在if條件中添加'$('。showTable')。show()'它會顯示帶有msg的datatable,表中沒有記錄 – DarkHorse