У меня очень простое приложение. Я отправляю простое имя и хочу получить автозаполнение.
Для этого я использовал плагин jquery autocomplete.
Когда я отправляю текст (Привет мир!), Я получаю - 10000 *
Я не понимаю, что не так.
Все файлы имеют кодировку - utf-8.
В HTML установить тег - meta charset = "utf-8"
В скрипте - encodeURIComponent (request.name)
Заголовки запроса:
Тип контента: application / x-www-form-urlencoded; charset = UTF-8
Accept-Encoding: gzip, deflate, br
Accept-Language: ru-RU, ru; q = 0,9, en-US; q = 0,8, en; q = 0,7
Заголовки ответа:
Content-Type: text / html; charset = UTF-8
Контент-кодировка: br
JS:
$('input[name=\'search_name\']').autocomplete({
'autoFocus': true,
'source': function(request, response) {
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf_token"]').attr('content')
},
url: 'search/autocomplete',
type: 'POST',
dataType: 'json',
data: {'filter_name':encodeURIComponent(request.name)},
success: function(json) {
response($.map(json, function(item) {
return {
label: item['name'],
value: item['client_id']
}
}));
}
});
},
'select': function(event, obj) {
addValue('addClient','client_id',obj.item.value,obj.item.label);
}
});
PHP:
public function autocomplete(Request $request)
{
$json = [];
if ($request->has('filter_client')) {
$client_info = \App\Models\Client::getClientByName($request->filter_client);
if ($client_info) {
foreach ($client_info as $client) {
$json[] = [
'client_id' => $client->client_id,
'name' => $client->name,
];
}
unset($client_info);
}
}
return response()->json($json);
}