从自动完成中获取所选值,id

时间:2014-12-22 10:26:45

标签: php jquery autocomplete

我想从自动完成

中获取所选值id

这是我的代码

<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="http://www.jqueryautocomplete.com/js/jquery/jquery.ui.core.min.js"></script>
<script src="http://www.jqueryautocomplete.com/js/jquery/jquery.ui.widget.min.js"></script>
<script src="http://www.jqueryautocomplete.com/js/jquery/jquery.ui.position.min.js"></script>
<script src="http://www.jqueryautocomplete.com/js/jquery/jquery.ui.autocomplete.min.js"></script>
<link rel="stylesheet" href="http://www.jqueryautocomplete.com/js/jquery/smoothness/jquery-ui-1.8.16.custom.css"/>
<script>
$(function() {

    $( "#search" ).autocomplete(
    {
         source:'source.php',
    })
});
</script>
<input type="text" id="search" class="ui-autocomplete-input" autocomplete="off" role="textbox" aria-autocomplete="list" aria-haspopup="true">

查询是

$req = "SELECT id,name "."FROM mytable "."WHERE name LIKE '%".$_REQUEST['term']."%' "; 

1 个答案:

答案 0 :(得分:3)

一般情况autocomplete正在查找设置为labelvalue的项目。 对于您的情况,您必须对其进行调整,因此自动填充功能会使用您的idname字段。

您可以覆盖select event并使用ui.item.idui.item.name访问字段。这看起来像这样:

$( "#search" ).autocomplete(
{
     source:'source.php',
     select: function(event, ui) {
        // handle the user selecting the entry
        // access fields with ui.item.name and ui.item.id
     }

})

但是,这可能会导致您的数据无法正确显示,因为默认情况下自动填充会使用labelvalue字段。

要覆盖显示行为,请实施_renderItem方法以显示您的数据。 如何执行此操作的示例可以在源代码中的examples page找到。