具有隐藏输入的自动完成
AutoComplete with hidden input
我是 AJAX 的新手,我需要自动完成功能的帮助。我需要将用户选择的 ID 放在隐藏的输入中。我尝试了很多事情,但这还没有结束..目前,没有什么超出我的职责。我给你看我的代码:
我的JS代码:
$( "#recherche" ).autocomplete({
source: function(request, response) {
$.ajax({
serviceUrl: 'rechercheadherant.php',
dataType: "json",
type: "POST",
data: {
keyword: request.term
},
success: function(data){
response( $.map( data, function( item ) {
return {
label: item.label,
value: item.value
}
}));
}
})
}
select: function(event, ui) {
$("#id").val(ui.item.value);
}
});
我的php代码(rechercheadherant.php):
<?php
if(isset($_GET['query'])) {
// Mot tapé par l'utilisateur
$q = htmlentities($_GET['query']);
$searchArray = array();
// Connexion à la base de données
require_once('lib/pdoconnect.php');
// Requête SQL
$requete = "SELECT `Ad_Id`, `Ad_Nom`, `Ad_Prenom`, `Ad_DateDeNaissance` FROM `adherant` WHERE `Ad_Nom` LIKE '". $q ."%' LIMIT 0, 10";
// Exécution de la requête SQL
$resultat = $connection->query($requete) or die(print_r($connection->errorInfo()));
// On parcourt les résultats de la requête SQL
while($search = $resultat->fetch(PDO::FETCH_ASSOC)) {
// On ajoute les données dans un tableau
$DateNaissance = $search["Ad_DateDeNaissance"];
$FormatDate = date("d/m/Y", strtotime($DateNaissance));
$NomPrenom=$search['Ad_Nom']." ".$search['Ad_Prenom']." ".$FormatDate;
$link = '';
$link .= $search['Ad_Id'].', '.$search['Ad_Nom'].' '.$search['Ad_Prenom'].', '.$search['Ad_DateDeNaissance'];
array_push($searchArray, array('label'=> $link, 'value' => $link, 'id'=>$search['Ad_Id']));
}
echo json_encode($searchArray);
?>
和我的输入:
<input class="form-control" placeholder="Saisir le nom de l'adhérant recherché" type="text" id="recherche">
<input type="hidden" id="id" name="id">
提前谢谢你:)
试试这个:
$('#recherche').on('autocompleteselect', function (e, ui) {
$('#id').val(ui.item.value);
});
你的 JS 代码中有一些错误,尤其是在select
事件之前缺少逗号 (,):
$("#recherche").autocomplete({
source: function(request, response) {
$.ajax({
serviceUrl: 'rechercheadherant.php',
dataType: "json",
type: "POST",
data: {
keyword: request.term
},
success: function(data){
response(data);
}
});
},
select: function(event, ui) {
$("#id").val(ui.item.value);
}
});
这是一个完整的工作示例。文件:
<script src="http://code.jquery.com/jquery-1.12.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.css">
<script>
$(document).ready(function() {
$("#recherche").autocomplete({
source: function(request, response) {
$.ajax({
url: 'data.json',
dataType: "json",
type: "POST",
data: {
keyword: request.term
},
success: function(data){
response(data);
},
error: function(data){
alert(data.statusText);
}
});
},
select: function(event, ui) {
$("#id").val(ui.item.value);
}
});
});
</script>
<input class="form-control" placeholder="Saisir le nom de l'adhérant recherché" type="text" id="recherche">
<input type="hidden" id="id" name="id">
data.json 文件基于您提供的 JSON 数据:
[{"label":"1, Grignon Fran'u00e7ois, 1994-11-08","value":"1, Grignon Fran'u00e7ois, 1994-11-08","id":"1"},{"label":"3, Guillemont Victoria, 1997-06-18","value":"3, Guillemont Victoria, 1997-06-18","id":"3"}]
相关文章:
- 单击其他元素或鼠标向上时隐藏输入框,但保留一次焦点
- jquery可以't隐藏输入名称为“”的表单;风格”;
- 默认情况下,在ipython笔记本中隐藏输入单元格
- 单击表单1中的按钮:更改表单2中隐藏输入的值(纯javascript)
- 如何使用 JavaScriptJQuery 将隐藏输入标签的值与选择标签的选定选项的值进行设置
- 将两个隐藏输入与简单的 JavaScript 进行比较失败
- getElementById().value未设置隐藏输入
- 为什么在下面的场景中,用于存储所选文件名和文件路径的隐藏输入字段没有在表单上生成
- 在隐藏输入上使用jQuery触发按键事件
- 使用HTML和Javascript,使用4个单选按钮显示和隐藏输入字段
- 修改隐藏输入中的json数组
- 为选中的每个复选框创建隐藏输入
- 使用数据中的值填充隐藏输入
- 将隐藏输入类型转移到我的隐藏模态/表单
- 带有隐藏输入的有序列表
- Angularjs隐藏输入字段中的文本
- 在同一页面上使用jQuery Mobile Flip Switch切换具有隐藏输入样式的图像
- 通过jQuery将动态生成的输入值传递到隐藏输入中
- 无法使用jQuery更改隐藏输入文本框的值
- HTMLJavascript-如何向输入语句添加函数并隐藏输入语句,除非选中“是”,然后取消隐藏