jQuery:使用自动完成功能将值添加到两个字段而不是一个字段

时间:2010-03-25 11:35:30

标签: php jquery arrays autocomplete

我想使用jQuery的autocomplete插件在选择其中一个自动完成值时填充不是一个,而是填充两个字段 - 在#band输入字段中输入一个波段的名称,但是波段网址(如果存在)也应在选择乐队名称时自动添加到#url输入字段。

现在我只是在外部php文件中有一个非常漂亮的列表,autocompleter从中获取它的值:

            $bands_sql = "SELECT bands.name, bands.url
            FROM bands
            ORDER BY name";
            $bands_result = mysql_query($bands_sql) or print (mysql_error());
            while ($bands_row = mysql_fetch_array($bands_result)) {
                $band_name = $bands_row['name'];
                $band_url = $bands_row['url'];

                echo $band_name."\n"; #needs to be replaced with an array that holds name and url
            }

我的自动完成功能看起来非常基本atm,但由于我是一个绝对的初学者,当涉及到jQuery(并且在涉及到PHP数组时也毫无头绪),我不知道如何告诉它填充两个字段而不是一。

                $(document).ready(function() {
                    $("#band").autocomplete('/autocomplete-bands.php');
                 });

这甚至可能吗?!

3 个答案:

答案 0 :(得分:1)

请务必选中result hadler,这样您就可以在做出选择后做您想做的事了

答案 1 :(得分:1)

以下是您正在寻找的示例:

$("#band").autocomplete('/autocomplete-bands.php').result(function(event, data, formatted) {
    if (data)
        $('#url').(data['url']);
    else {
        // no data returned from autocomplete URL
    }
});

我对php知之甚少,但无论您返回的数据格式是什么,都应放在data['url']当前的位置,以填充#url输入。

答案 2 :(得分:1)

我不知道您使用的特定插件,但我会使用autocomplete widget代替jQuery UI代替第三方插件。