2016-11-21 48 views
0

我使用datatables來創建從我的數據庫信息的表格,但我的數據使用JSON/AJAX傳遞給表的數據表掙扎給我一個無效的JSON響應錯誤。json_encode輸出JSON響應數據表無效?

什麼,我做的是一個查詢作爲對象的結果,並將其編碼爲JSON的數據表中獲取。我似乎被卡在獲取它編碼爲JSON。

 $sql = "SELECT * FROM BedrijfskledingT 
       INNER JOIN Bedrijfskleding ON BedrijfskledingT.KledingID = Bedrijfskleding.KledingID 
       INNER JOIN Gebruikers ON BedrijfskledingT.GebruikerID = Gebruikers.GebruikerID"; 
     $stmt = sqlsrv_query($conn, $sql); 
      while($obj = sqlsrv_fetch_object($stmt)) { 
       var_dump($obj); 
      } 

      $json = json_encode($obj); 
       var_dump ($json); 

無論我轉儲/ echo $ json或$ obj結果保持不變。我試圖把json_encoder的輸出通過JSON Validator和它給了我下面的分析錯誤:

Error: Parse error on line 1: 
object(stdClass) #1 
^ 
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined' 

下面是$ JSON的輸出。我把它縮小到了一行,因爲它有很多。

object(stdClass) #1 (23) { ["GebruikerID"]= > int(17)["KledingID"] => string(5) 
"KL001" ["Aantal"] => int(2)["Notitie"] => string(10) 
"incl. Logo" ["Omschrijving"] => string(5) 
"Broek" ["Artikelnr"] => string(14) 
"12179-203-0918" ["Prijs"] => string(5) 
"50.36" ["Gebruikersnaam"] => string(2) 
"CD" ["Voornaam"] => string(4) 
"Coen" ["Tussenvoegsel"] => NULL["Achternaam"] => string(10) 
"*******" ["Woonplaats"] => NULL["Email"] => string(25) 
"*****@*****.nl" ["Functienaam"] => string(14) 
"Field Engineer" ["Bedrijf"] => string(6) 
"Cruxin" ["Manager"] => NULL["Werkplek"] => NULL["IndienstTreding"] => string(10) 
"1999-12-31" ["Beschrijving"] => NULL["CreatedBy"] => NULL["ModifiedBy"] => NULL["DateCreated"] => NULL["DateModified"] => NULL 
} 

我不正確使用json_encode嗎?將不勝感激幫助!

這裏是我的DataTable的javascript:

$(document).ready(function() { 
    $('#example').DataTable({ 
     "processing": true, 
     "serverSide": true, 
     "ajax": "server_processing.php" 
    }); 
}); 

回答

0
$json = json_encode($obj); 
var_dump ($json); 

應該

// Remember `json_encode` only takes in array and not objects 
echo json_encode((array)$obj); 

json_encodestring輸出沒有必要爲var_dump那邊。

+0

而他while循環中有一個的var_dump了。 – bassxzero

+0

@bassxzero我想,只是爲了後來在他的腳本調試或東西。沒有json_encode函數叫做:)。通常情況下,人們只需要一個json輸出作爲響應,而不是很多。但無論如何,如果這需要'JSON編碼'他應該能夠從答案中看到如何使用它:D – georoot

+0

我試過你所建議的,並且返回的輸出只是「空」。這是什麼造成的?我無法將$ obj編碼爲JSON,因此它能讓我空? – Brayn