jQuery UI的自动完成功能:如何使用自定义索引?

时间:2019-05-22 15:04:15

标签: php sql jquery-ui

我对jQuery UI有问题。 我需要使用数据库中的数据来autocomplete()。 我需要name进行显示,ID进行提交。

所以,我不能简单地使用带有名称的字符串数组,我需要使用对象数组。 我的问题是:jQuery UI自动完成功能仅接受labelvalue属性来执行自动完成。 所以,我必须这样做:

PHP

public function autocomp(Connection $db)
    {

        $term = $_GET['term'];

        $req = $db->prepare("SELECT name, id FROM product LIKE '%".$term."%'");
        $req->execute();

        // Because jQuery-UI's autocomplete() accept only array with 'label' for index of value,
        // We are forced to parse the data before send it to JSON...
        $array = [];
        $i = 0;
        while($data = $req->fetch())
        {
            $i++;
            $array[$i]['id'] = $data['id'];
            $array[$i]['label'] = $data['name'];

        }

        $response = new Response(json_encode($array));
        return $response;

    }

jQuery autocomplete()

$(function () {
    $('#autotry').autocomplete({
        source: '/autocomp',
        select: function (event, ui) {
            $('#hidden').val( ui.item.id)
        }
    });
});

你知道我的意思吗?是的,如果定义了“标签”或“值”,我可以使用其他属性(例如“ id”)来执行我想要的操作。

我只想使用自定义属性,以避免出现循环...对于每个输入。 谢谢,请原谅我的英语(和我的JS技能。)

0 个答案:

没有答案