jquery ui オートコンプリートでデータを表示する際に問題が発生しました。テキストを表示すると、db とページが utf-8 を使用しているにもかかわらず、utf-8 でエンコードされていません。
また、他の方法で表示しようとすると、正しいエンコーディングで正常に表示されます。
jquery ui スクリプト。
<script type="text/javascript" charset="utf-8">
$(function() {
function log( message ) {
$( "<div>" ).text( message ).prependTo( "#log" );
$( "#log" ).scrollTop( 0 );
}
$( "#items" ).autocomplete({
source: "getSurgestedItems.php",
minLength: 2,
select: function( event, ui ) {
log( ui.item ?
"Selected: " + ui.item.value + " aka " + ui.item.id :
"Nothing selected, input was " + this.value );
}
}).data("autocomplete")._renderItem = function(ul, item){
return $("<li>")
.data("item.autocomplete", item)
.append("<a>" + item.value + "<br>" + item.desc + "</a>")
.appendTo(ul);
};
});
</script>
項目を取得する php スクリプト。
while ($row = $result->fetch_assoc()) {
$i++;
if(!$first){
$json .=',';
}
else{
$first = false;
}
$name = addslashes($row['name']);
$desc = mb_substr(addslashes($row['description']), 0, 60, 'UTF-8');
$desc .= '...';
$json .='{"value" : "'.$name.'",
"desc" : "'.$desc.'"}';
}
$json .=']';
echo $json;
今私が言ったように、私が考えることができるあらゆる方法でデータを表示しようとしましたが、それは間違って表示されるオートコンプリート機能でのみです。