如何从Jquery UI自动完成插入ID

时间:2012-02-23 07:57:33

标签: php mysql jquery-ui

我做了一个jquery自动完成,它的数据来自mysql database.now我面临一个小问题。

我想在自动填充中显示产品名称,如下面的代码所示&它的工作正常。但点击提交按钮后我想插入产品ID而不是产品NAME.Below是我的代码

<?php
require_once "include/config.php";
$sql_product = "select * from tbl_product";
$res_product = mysql_query($sql_product);
?>

<script>
$(function() {
    var availableTags = [
         <?php
      while($rs_product = mysql_fetch_array($res_product))
      {
        $prod_name = $rs_product['prod_name'];
      ?>
      "<?php echo $prod_name; ?>" <?php echo ", "; ?>   
      <?php
      }
      ?> 
    ];
    $( "#tags" ).autocomplete({
        source: availableTags
    });
});
</script>

<label for="tags">Tags: </label>
<input id="tags" />

3 个答案:

答案 0 :(得分:0)

尝试(我假设你的表中有prod_id列)

var availableTags = [
      <?php
        while($rs_product = mysql_fetch_array($res_product))
        {
           $prod_id[] = $rs_product['prod_id'];                 
        }
        echo  json_encode($prod_id);
      ?> 
    ];

更新

使用json_encode

答案 1 :(得分:0)

参考这篇文章:

Using jQuery UI Autocomplete with Hidden ID's

希望它会对你有所帮助。

答案 2 :(得分:0)

您可以将您的值传递给availableTags源,格式如下:


[{label:"Prod Name 1", value:1}, {label:"Prod Name2", value:2}]

创建隐藏的输入元素,例如


<input type="hidden" name="hidAutoComplete" value="" />


$( "#tags" ).autocomplete({
        source: availableTags,
        select: function(event, ui) {
        var selectedObj = ui.item;
        $(this).val(selectedObj.label);
        $('input[name="hidAutoComplete"]').val(selectedObj.value);
        return false;
    }
});

希望有所帮助