2013-01-03 63 views
1

有沒有辦法可以阻止jQuery autocomplete將UTF8字符顯示爲帶「?」的黑色方塊的結果?內?帶有UTF8字符的jQuery UI自動完成

這裏是我的代碼:

<?php 
    $text = $mysqli->real_escape_string($_GET['term']); 
    $query = "SELECT DISTINCT field_63 FROM jbd_joomd_type15 WHERE field_63 LIKE '%$text%' ORDER BY field_63 ASC"; 
    $result = $mysqli->query($query); 
    $json = '['; 
    $first = true; 
    while($row = $result->fetch_assoc()) 
    { 
     if (!$first) { $json .= ','; } else { $first = false; } 
     $json .= '{"value":"'.$row['field_63'].'"}'; 
    } 
    $json .= ']'; 
    echo $json; 
?> 

我的jQuery代碼:

<script type="text/javascript"> 
$(document).ready(function() 
{ 
    $('#field_63').autocomplete(
    { 
     source: "cities.php", 
     minLength: 1 
    }); 
}); 
</script> 

回答

0

您是否嘗試過在你的數據json_encode

See documentation here: json_encode — Returns the JSON representation of a value

而且你不同意你的jQuery代碼???

我還發現了。

+0

我對json腳本毫無新意,並且在互聯網上發現了一些關於這個問題的結果,但是我發現的代碼示例沒有一個看起來像我的,所以我害怕我會搞砸我的代碼有問題。這就是我尋求幫助的原因。謝謝我會看看你發佈的鏈接。 – mah2602

+0

我會重新提出你的問題,讓更多的人看到它,並希望給你更多的選擇。 –

0

我用

$json .= '{"value":"'.utf8_encode($row['field_63']).'"}'; 
0

更換線

$json .= '{"value":"'.$row['field_63'].'"}'; 

解決了這個問題我有同樣的...

我所有的PHP網站是UTF-8編碼的MYSQL數據庫也。到處都看起來不錯,並顯示正確的字符,但這個自動完成列表。 在我需要使用這個返回值。

utf8_encode(return_value) ; 

這解決了這個問題。