簡體   English   中英

json_encode 適用於整數而不適用於字符串

[英]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.

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