Я пытаюсь завершить скрипт, который использует автозаполнение jquery.JQuery autocomplete PHP, Ajax и Json
Я написал пользовательскую ФОРМУ, у которой есть текстовое поле, когда пользователь начинает вводить имя компании, функция jquery запускается и выполняет поиск в таблице данных и возвращает любые совпадения в формате json.
Пользователь может затем выбрать требуемое название компании, а затем вставить в текстовый блок. В то же время имя логотипа campany вставляет в текстовое поле anopther в виде файла .png.
Проблема, с которой я столкнулась, заключается в следующем: когда пользователь начинает вводить функции jquery, выполняется, но результат отображает все записи в таблице данных, а не только записи, содержащие то, что пользователь набрал.
Мое имя компании текстовое поле и имя изображения текстовое поле:
<input name="ClientName" placeholder="Client name" class="imaindatesel" id="search-box_1" type="text" size="60" maxlength="40" />
<input name="CompanyImage" type="text" id="company_image_1" class="ui-autocomplete-input"/>
Мои ссылки на JQuery
<link href="../../../../globalscripts/autocomplete/jquery-ui-1.10.4.custom.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="../../../../globalscripts/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="../../../../globalscripts/jquery-ui.js"></script>
Моя функция JQuery:
$(document).ready(function() {
$('#search-box_1').autocomplete({
source: function(request, response) {
$.ajax({
url : 'check_name.php',
dataType: "json",
data: {
name_startsWith: request.term//,
},
success: function(data) {
response($.map(data, function(item) {
var code = item.split("|");
return {
label: code[0],
value: code[0],
data : item
}
}));
}
});
},
autoFocus: true,
minLength: 3,
select: function(event, ui) {
var names = ui.item.data.split("|");
$('#company_image_1').val(names[1]);
}
});
})
Мой PHP скрипт
$query = $db->query("SELECT RecordID, CompanyName, ImageName FROM conf_image_depository WHERE CompanyName LIKE '".$_POST['name_startsWith']."%' GROUP BY CompanyName ORDER BY CompanyName ASC");
$data = array();
while ($row = $query->fetch_assoc()) {
$name = $row['CompanyName'].'|'.$row['ImageName'];
array_push($data, $name);
}
//return json data
echo json_encode($data);
В результате вызова Ajax:
["British Airways|British-Airways.png","British Assessment Bureau|british-assessment-bureau.png","British Gas|BritishGas.png","British Sugar|BritishSugar.png"]
Может кто-нибудь понять, почему, когда пользователь начинает набирать полный список всех записей в таблице данных отображаются.
Большое спасибо заранее за ваше время.
Показать полный код. –
Возможно, вам придется изменить $ _POST TO $ _GET – user2182349
@ user2182349, сменив $ _POST на $ _GET, но я не знаю почему. Но большое спасибо за вашу помощь – DCJones