从JQUERY Autocomplete获取ID

时间:2012-10-31 15:44:10

标签: php jquery

我有来自JQUERY的自动填充功能,我想要产品的ID而不是我选择的产品名称。

这是完整的AUTOCOMPLETE:

    <?php

    // if the 'term' variable is not sent with the request, exit
    if ( !isset($_REQUEST['term']) )
    exit;

    // connect to the database server and select the appropriate database for use
    include 'conexion2.php';

    // query the database table for client codes that match 'term'
    $rs = mysql_query('SELECT id_cliente, nombrecliente FROM cliente where nombrecliente like "'. mysql_real_escape_string($_REQUEST['term']) .'%" order by nombrecliente asc', $conexio);

    // loop through each name returned and format the response for jQuery
$data = array();
    if ( $rs && mysql_num_rows($rs) )
    {
    while( $row = mysql_fetch_array($rs, MYSQL_ASSOC) )
    {
        $data[] = array(
            'label' => $row['nombrecliente'],
            'value' => $row['nombrecliente'],
        );
    }
    }

    // jQuery wants JSON data
    echo json_encode($data);
    flush();

我选择客户时不知道如何取出ID。如果我更改'value'=&gt; $ row ['id_cliente'],然后我在自动完成输入中得到ID号....

1 个答案:

答案 0 :(得分:1)

在您的数组中,添加另一个项目:

'id' => $row['id_cliente']

然后,您需要添加一个隐藏的表单字段,用于存储您的ID。在你的jQuery中(假设你正在使用jQueryUI自动完成),你可以在源代码下添加它作为自动完成功能的一部分:

$('#autocomplete_input').autocomplete({
    source: '/path/to/lookup/php/file',
    select: function(event, ui){
        $('#my_hidden_field').val(ui.item.id);
    }
});

然后,当您在提交后阅读表单时,您将阅读该ID而不是自动填充字段。