使用mySQL和PHP进行jQuery Autosuggest

时间:2014-09-06 23:13:34

标签: php jquery mysql autosuggest

我设置了一个自动提示,其中一个人可以进入一个州并被引用到我网站上的一个页面。我将它链接到一个数据库,因为一旦我得到这个简单的例子,我将在数据库中有50,000个位置来查找。现在我只有州。

除了当用户从列表中选择状态时,一切都很好,但是在框中填写的名称是我发送它们的URL链接,而不是正确的标签。 (但我仍然会将它们发送到网址。)这是一个小点,但它看起来并不合适。有什么想法吗?

jQuery(document).ready(function($){
    $('#searchbox').autocomplete({
        source:'suggest.php', 
        minLength:1,
        select: function(event, ui) {
            $( "#searchbox" ).val( ui.item.label );
            var url = ui.item.value;
            if(url != '#') {
                window.location.href = url;
            }
        },
        html: true,
        open: function(event, ui) {
            $(".ui-autocomplete").css("z-index", 1000);
        }                   
    });
});

php返回Web链接和正在搜索的标签:

while( $row = mysql_fetch_array($rs, MYSQL_ASSOC) )
{
    $data[] = array(
        'label' => $row['Label'],
        'value' => $row['Link']
    );
}

以下是运行1

的示例

1 个答案:

答案 0 :(得分:1)

select方法的默认行为似乎是将文本框设置为使用value而不是label。所以使用$( "#searchbox" ).val( ui.item.label );无效,无论你放在那里的字符串如何。在这种情况下,我们应该停止默认行为。

event.preventDefault()放入select函数似乎可以解决问题。

select: function(event, ui) {
    event.preventDefault();
    $( "#searchbox" ).val( ui.item.label );
    var url = ui.item.value;
    if(url != '#') {
        window.location.href = url;
        }
    }