簡體   English   中英

帶有SQLSRV和JSON的jQuery DataTable

[英]jQuery DataTable with SQLSRV and JSON

我不明白我在做什么錯。 這不是執行ajax調用並返回JSON的正確格式嗎?

我正在嘗試返回JSON以填充DataTable。 我之前所做的事情與此非常相似,但是這次我無法使其工作。

這是我使用SQLSRV返回JSON的腳本(“ api / exceptions_all.php”):

 <?php
   include("../include/database.php");

   $select = "SELECT
               ''
               ,[FOR_PARTNER] 
               ,[FOR_NAME]
               ,[SHP_PARTNER]
               ,[SHP_NAME]
               ,[MODDATE]
               ,[MODUSER]
               ,[ID]
             FROM [main].[dbo].[for_exceptions]";

 $query = sqlsrv_query($dbc, $select) or die(sqlsrv_errors());
 $out = array();

 while( $row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC) ) 
 {
   $out[] = $row;
 }
 echo json_encode( $out );
 sqlsrv_free_stmt($query);

 ?>

現在這是我的javascript文件(“ exceptions.js”),我在其中嘗試檢索JSON並將其打印在數據表中:

 $(document).ready(function()
 {
   var $dataTable = $('#example1').DataTable({
     "type": 'POST',
     "ajax": 'api/exceptions_all.php',
     "data": data,
     "dataType": 'json',
     "bDestroy": true
   });
 });

我不斷收到錯誤消息,指出“未捕獲的ReferenceError:未定義數據”,指向“ data”:上面的數據。

在我的HTML文件中,有一個應在其中填充DataTable的表:

 <table id="example1">
 <thead>
   <tr>
     <th>Edit</th>
     <th>FF Partner Code</th>
     <th>FF Name</th>
     <th>SHP Partner Code</th>
     <th>SHP Name</th>  
     <th>Modified Date</th>
     <th>Modified User</th>
     <th>ID</th>
   </tr>
 </thead>
 // datatable should be here
 </table>

我想你會錯過在while循環之外聲明$ out []數組;

     <?php
     include("../include/database.php");

     $select = "SELECT
           ''
           ,[FOR_PARTNER] 
           ,[FOR_NAME]
           ,[SHP_PARTNER]
           ,[SHP_NAME]
           ,[MODDATE]
           ,[MODUSER]
           ,[ID]
         FROM [main].[dbo].[for_exceptions]";

     $query = sqlsrv_query($dbc, $select) or die(sqlsrv_errors());

     $out=array();**// add this line** 
     while( $row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC) ) 
     {
     $out[] = $row;
     }
     echo json_encode( $out );
     sqlsrv_free_stmt($query);

   ?>

似乎您正在使用jQuery的DataTables插件...

像這樣的東西

$(document).ready(function()
{
   var $dataTable = $('#example1').DataTable({
     "ajax": 'api/exceptions_all.php'
   });
});

這直接來自文檔...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM