2011-09-08 3 views
0

У меня проблема с кодировкой в ​​jQueryUI Autocomplete. применение стороны Сервера PHP и отправить ответ на этот запрос с заголовками:jQueryUI autocomplete - проблема с кодированием

Content-Type: application/json, charset=UTF-8 

Вот автозаполнение кода:

$('#city').autocomplete({ 
    source: 'ajax_get_cities.html', 
    dataType: "json", 
    minLength:3 
}); 

Когда я типом: КР (ожидаемый результат: Краков) Я получаю ответ (скопирован из отчета Firebug raw):

[{"city":"Krak\u00f3w"}] 

и автозаполнение не отображает этот результат.
Таблица базы данных, поле, соединение, файл PHP, все это UTF-8.
Где проблема?

Update
Это проблема на стороне сервера, PHP приложения на основе KohanaPHP 2.3.4 рамок. Вот код, чтобы получить и отображение результата:

header('Content-Type: application/json, charset=UTF-8'); 
$mModel = new Partners_Model(); 
$str = $this->input->get('term', true); 
$aCities = $mModel->getCitiesAjax($str); 
echo json_encode($aCities); 

Когда я Disply массива $ aCities тогда я получаю правильную строку.

+0

заголовок (..) работал как магия, спасибо. – Asaf

ответ

2

Локальные данные могут быть простым массивом строк, или содержит объектов для каждого элемента массива, либо с этикеткой или значением собственности или оба.

добавить ярлык свойство вашего ответа JSon:

[{"label":"Krak\u00f3w"}] 

DOCS: Autocomplete Widget | jQuery UI API Documentation - опция "источник"

+0

Работает отлично, спасибо. Я забыл о правильной собственности. –

+0

Я тоже это забыл. :) – bsrykt

+0

В текущей версии есть возможность использовать функцию в качестве источника данных :) (недостатком является то, что вам нужно выполнить поиск «самостоятельно») –

0

добавить к вашим autocomplete:

contentType: "application/json; charset=utf-8" 
+0

не работает, это проблема на стороне сервера. Когда я пытаюсь получить этот адрес прямо в браузере, я получаю такой же результат. –

Смежные вопросы