[英]json_encode works for integers not for strings
我正在嘗試將數組從 php 傳遞到 js,並且 json_encode 函數在 $MID(整數數組)上工作,但在 $name(字符串數組)上無法執行任何操作。
有人能幫我理解為什么它不起作用嗎?
$sql = "SELECT DISTINCT [materialID],[name],[categoryName],[materialResponsePerson]
FROM [SAP_Replication].[dbo].[IntranetProductResponsePerson]";
$params = array();
$stmt = sqlsrv_query( $conn, $sql, $params);
if( $stmt === false ) {
die( print_r( sqlsrv_errors(), true));
}
$MID = array();
$name = array();
$cName = array();
$resPerson = array();
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
array_push($MID,$row["materialID"]);
array_push($name,$row["name"]);
array_push($cName,$row["categoryName"]);
array_push($resPerson,$row["materialResponsePerson"]);
}
echo json_encode($MID); //works and returns values
echo json_encode($name); //returns bool(false)
sqlsrv_close($conn);
只向 Javascript 回顯一件事! 它期望從您的 PHP 代碼中得到一個答復,而不是 4。
所以我會做
echo json_encode([ 'MID' => $MID,
'name' => $name,
'cName' => $cName,
'resPerson' => $resPerson
]);
然后更改你的 js 代碼以從正確的對象讀取數據
我在注釋代碼時犯了一個錯誤。 當我 var_dump $name 變量時,它返回 bool(false)。 后來我發現這意味着 json_encode 不支持包含 'đ','ž','...' 的字符串,所以我需要將數組轉換為 utf-8。 感謝大家的幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.