我正在研究这个jquery数据输入表单,其中我需要一个特定的字段来自动完成来自mysql的数据
我得到了一切正常,自动完成通过php匹配从sql检索数据是英语/拉丁语和utf8字符
从sql中检索的值为“'number'=>'name'”
现在,自动完成功能在输出,值,标签和ID中有3个值。 作为id和值,它使用'name' 标签是我的sql字符串的'number'(当表单被提交时发布到下一页)
所以一切正常,我的'号码'被正确发布,有一点小烦恼
当我从自动填充列表中选择某些内容时,该字段将填入“数字” 有没有办法用'名字'填写它? 即:搜索“名称”,使用“名称”下拉,点击并在字段中获取“名称”,当我提交时,我会发布“号码”吗?
任何帮助将不胜感激。
如果您需要查看我的代码,请将其发布在上一个问题:Jquery ui - Autocomplete - UTF8 charset
预先thanx:)
答案 0 :(得分:2)
通常的做法是:
input
来保存您要POST的值,然后自动填充单独的字段。input
select
input
属性填充可见的自动填充label
。所以,例如:
<强> HTML:强>
<input type="hidden" name="name" />
<input type="text" id="name_auto" />
<强> JavaScript的:强>
$(function () {
var cache = {},
lastXhr;
$( ".name" ).autocomplete({
minLength: 1,
source: function( request, response ) {
var term = request.term;
if ( term in cache ) {
response( cache[ term ] );
return;
}
lastXhr = $.getJSON( "search.php", request, function( data, status, xhr ) {
cache[ term ] = data;
if ( xhr === lastXhr ) {
response( data );
}
});
},
select: function (event, ui) {
event.preventDefault();
this.value = ui.item.label;
},
change: function (event, ui) {
if (ui.item) {
$("input[name='name']").val(ui.item.value);
} else {
$("input[name='name']").val('');
}
}
});
});
答案 1 :(得分:1)
您可以使用u&#39; r自动完成中的结果(处理程序) 其中变量数据如数组,您可以一次返回两个数据 EXPL: 在javascript中
$().ready(function()
{
var url = "<?=base_url()?>index.php/master/agen";
var width_val = 308;
$("#name_auto").autocomplete(url,
{
width: width_val,
selectFirst: false,
});
$("name_auto").result(function(event, data, format)
{
$("#name_auto").val(data[0]);
$("#id").val(data[1]);
});
});
HTML中的:
<input type="hidden" name="number" id="id" />
<input type="text" id="name_auto" name="name" />
PHP中的:
foreach ($source->result() as $row)
{
echo "$row->nama|$row->id\n";
}
注意:这里我在其
中使用PHP CodeIgniter