Я создал небольшой пример JQuery с JQuery UI автозаполненияJQuery UI автозаполнения специальные символы
$(function() {
//autocomplete
$(".selector").autocomplete({
source: "getdata.php",
minLength: 1
});
})
getdata.php
:
<?php
if (isset($_GET['term'])){
$return_arr = array();
try {
$connectionInfo = array('Database'=>'db','UID'=>'sa','PWD'=>'pw');
$connection = sqlsrv_connect('db-server',$connectionInfo);
if($connection)
{
$result = sqlsrv_query($connection, 'SELECT TOP 10 test FROM table WHERE test like ? ',array('%'.$_GET['term'].'%'));
while($row = sqlsrv_fetch_array($result)){
$row = array_map('utf8_encode', $row);
$return_arr[] = $row['test'];
}
}
}
catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
/* Toss back results as json encoded array. */
echo json_encode($return_arr);
}
?>
и он работает, но проблема заключается в том, что источник данных не Unicode, поэтому строки не отображаются правильно. Я не знаю, какое преобразование использовать.
Если это возможно, я хотел бы сохранить ту же кодировку, в базе данных (Windows-1250), так как этот проект может также вставить материал обратно с веб-сайта в БД
Я пытался просто сбросить оригинальные строки, а затем Я получаю значение со специальными символами, как нуль в JSON, когда возвращение массив прибудет преобразил
Спасибо за ваш ответ, и я действительно пытался baes64 ecode строки, прежде чем положить их в json, но я не знаю, какое событие «jquery .ui.autocomplete» использовать для их декодирования раньше они отображаются – Jester