关于我的问题有几个问题,但实际上没有人可以帮助我解决它。 我不熟悉javascript,更不用说jquery所以请耐心等待。
如上所述,我有一个带有jquery自动完成功能的文本字段,效果很好。 但我需要一个隐藏的字段填充相应的ID到选定的值。 这是表格:
<input name="clubname" id="clubname" type="text" />
<input name="clubid" id="clubid" type="hidden" value="" />
对于自动完成,我使用如下数组:{id: 1, value: 'something' }
。
整个页面都在php中从数据库获取数据并编写数组。
在自动完成中,我添加了重音文本功能。
这是代码:
var accentMap = {
'á': 'a',
'ä': 'a',
'à': 'a',
'â': 'a',
'ö': 'o',
'ô': 'o',
'ó': 'o',
'ò': 'o',
'ü': 'u'
};
var normalize = function (term) {
var ret = '';
for (var i = 0; i < term.length; i++) {
ret += accentMap[term.charAt(i)] || term.charAt(i);
}
return ret;
};
$().ready(function () {
$('#clubname').autocomplete({
source: function (request, response) {
var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), 'i');
response($.grep(clubs, function (value) {
value = value.label || value.value || value;
return matcher.test(value) || matcher.test(normalize(value));
}));
}
});
});
});
似乎我必须使用结果处理程序将ID导入隐藏字段。但是如何准确地访问所选值的ID会让我感到厌烦。
非常感谢任何帮助!
答案 0 :(得分:2)
$JsonArray =array();
foreach($EmployeeDetailList as $value){
$Array[label]=$value['user_name'];
$Array[value]=$value['user_name'];
$Array[eid]=$value['id']; //Here goes the ID of the employee
array_push($JsonArray,$Array);
}
$JsonSerialize=json_encode($JsonArray);
这是服务器端编码以填充Json编码数组
现在,下一部分实现了JQuery Part
$(function() {
var availableTags = <?php echo $JsonSerialize;?>;
$( "#imas" ).autocomplete({
source: availableTags,
select: function(event,ui){
var userid = ui.item.eid;
alert(userid); //This will alert the Employee ID . You can use it any where you want
},
});
});