2016-07-20 16 views
1

Ich verstehe nicht, was ich falsch mache. Ist das nicht das richtige Format für einen Ajax-Aufruf und die Rückgabe von json ???JQUERY DATATABLE mit SQLSRV und JSON

Ich versuche, JSON zurückzugeben, um eine Datentabelle aufzufüllen. Ich habe etwas sehr ähnliches schon einmal gemacht, aber ich kann es diesmal nicht schaffen. Hier

ist das Skript ("api/exceptions_all.php"), wo ich SQLSRV bin mit dem JSON zurück:

<?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); 

?> 

Hier ist meine Javascript-Datei ("exceptions.js"), wo ich bin versuchen, die JSON abrufen und in der Datentabelle drucken:

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

ich halte einen Fehler bekommen Angabe „Uncaught Reference: Daten ist nicht definiert“ bezieht sich auf „Daten“: Daten oben.

In meiner HTML-Datei, habe ich den Tisch, an dem die Datentabelle aufgefüllt werden soll:

<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> 

Wenn Sie meine Fehler zu sehen, bitte helfen. Ich danke dir sehr.

Es ist eine Code-Welt.

Antwort

0

ich, was Sie vermissen, um das $ out [] Array außerhalb der while-Schleife zu deklarieren;

 <?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); 

    ?> 
+0

Entschuldigung - ich hatte tatsächlich die Zeile, auf die Sie verwiesen haben. Ich habe gerade meine Frage bearbeitet. Immer noch das gleiche Problem. –

0

Sieht aus wie Sie die Datentabellen-Plugin für jQuery verwenden ...

So etwas wie dies vielleicht ...

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

Dies ist direkt aus dem Text & Tabellen ...