Я пытаюсь реализовать автозаполнение jQuery в моем проекте Codeigniter, но в Firefox я получаю следующую ошибку.
SyntaxError: JSON.parse: неожиданный символ в строке 1 столбца 1 данных JSON
JavaScript
jQuery("#search").autocomplete({
source: function(req, response) {
$.ajax({
url: "<?php echo site_url('C_systemUser/search_value'); ?>",
dataType: "text",
success: function(data) {
var re = $.ui.autocomplete.escapeRegex(req.term);
var matcher = new RegExp("^" + re, "i");
response($.grep(data, function(item) {
return matcher.test(item.label);
}));
}
});
},
minLength: 2,
select: function(event, ui) {
event.preventDefault();
$('#search').val(ui.item.label);
$('#id').val(ui.item.value);
}
});
модальный
function systemUserSearch($q) {
$this - > db - > select('systemUserID,systemUserName');
$this - > db - > like('systemUserName', $q);
$query = $this - > db - > get('systemuser');
if ($query - > num_rows() > 0) {
foreach($query - > result_array() as $row) {
$result_row['label'] = htmlentities(stripslashes($row['systemUserName']));
$result_row['value'] = htmlentities(stripslashes($row['systemUserID']));
$result[] = $result_row;
}
echo json_encode($result);
}
}
контроль
public function search_value()
{
$q=$this->input->get('query');
$this->load->model('m_autocomplete');
$this->m_autocomplete->systemUserSearch($q);
}
Вы в этом уверены :
url: "<?php echo site_url('C_systemUser/search_value'); ?>",
Вы хорошо рендеринг JS в PHP-файл?
Вы должны установить заголовок Content-Type
header("Content-Type: application/json;charset=utf-8");
Кроме того, установите в своем JS dataType: "json"
Javascript
jQuery("#search").autocomplete({
source: function(req, response) {
$.ajax({
url: "<?php echo site_url('C_systemUser/search_value'); ?>",
dataType: "json",
success: function(data) {
var re = $.ui.autocomplete.escapeRegex(req.term);
var matcher = new RegExp("^" + re, "i");
response($.grep(data, function(item) {
return matcher.test(item.label);
}));
}
});
},
minLength: 2,
select: function(event, ui) {
event.preventDefault();
$('#search').val(ui.item.label);
$('#id').val(ui.item.value);
}
});
модальный
function systemUserSearch($q) {
$this - > db - > select('systemUserID,systemUserName');
$this - > db - > like('systemUserName', $q);
$query = $this - > db - > get('systemuser');
if ($query - > num_rows() > 0) {
foreach($query - > result_array() as $row) {
$result_row['label'] = htmlentities(stripslashes($row['systemUserName']));
$result_row['value'] = htmlentities(stripslashes($row['systemUserID']));
$result[] = $result_row;
}
ob_clean();
header('Content-Type: application/json');
echo json_encode($result);
ob_end_flush();
}
}
Спасибо всем за вашу помощь Исправлена ошибка, из-за jquery Ui Ссылка ошибка изменилась на новую версию и исправлена ошибка