我正在使用datatables创建一个包含来自我的数据库的信息的表,但我正在努力将数据传递到使用JSON / AJAX的表作为数据表,这给我一个无效的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);
无论是转储/回显$ 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
吗?非常感谢帮助!
这是我的数据表javascript:
$(document).ready(function() {
$('#example').DataTable( {
"processing": true,
"serverSide": true,
"ajax": "server_processing.php"
} );
} );
答案 0 :(得分:0)
$json = json_encode($obj);
var_dump ($json);
应该是
// Remember `json_encode` only takes in array and not objects
echo json_encode((array)$obj);
json_encode
的输出为string
,那里不需要var_dump
。