Я бы посоветовал следующее jQuery:
$( "#grp_name" ).autocomplete({
source: function(request, response) {
$.ajax({
url:"abonne/ajax_get_grp_autorisation",
method:"POST",
dataType: "json",
data: {
marque_id: request.term
},
success: function( data ) {
console.log(data);
response(data);
}
});
},
select: function (event, ui) {
// Set selection
$('#grp_name').val(ui.item.label); // display the selected text
$('#id_grp_selected').val(ui.item.id); // save selected id to input
return false;
}
});
Это небольшое изменение.Это отправит request.term
на ваш скрипт PHP.Например, если пользователь введет «gro», он будет отправлен в ваш скрипт и будет доступен через:
$_POST['marque_id']
Это предполагает, что ваш SQL-запрос выглядит примерно так:
$stmt = $mysqli->prepare("SELECT * FROM table WHERE column LIKE '?%'");
$stmt->bind_param("s", $_POST['marque_id']);
$stmt->execute();
$liste_grp = $stmt->get_result();
$data = array();
while($line = $liste_grp->fetch_assoc()) {
$data[] = array(
"label" => $line['grp_nom'],
"value" => $line['grp_nom'],
"id" => $line['groupement_id']
);
}
$stmt->close();
header('Content-Type: application/json');
echo json_encode($data);
Использует Подготовленный оператор MySQLi и поможет предотвратить SQL-инъекцию.Я также включил заголовок JSON в качестве хорошей практики.Результат поиска "gro"
будет выглядеть примерно так:
[
{
"label": "GROUPE DATAPNEU TEST",
"value": "GROUPE DATAPNEU TEST",
"id": 1
}
];