【问题标题】:jQuery Autosuggest with mySQL and PHPjQuery 自动提示与 mySQL 和 PHP
【发布时间】:2014-10-31 13:45:00
【问题描述】:

我正在设置一个自动提示,人们可以在其中输入一个状态并被推荐到我网站上的一个页面。我将它链接到数据库,因为一旦我得到这个简单的例子,我将在数据库中查找 50,000 个位置。现在我只有状态。

一切正常,除了当用户从列表中选择一个状态时,在框中填写的名称也是我发送给他们的 url 链接而不是正确的标签。 (但我仍然会将它们发送到一个 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 返回网页链接和正在搜索的标签:

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

这是运行1的示例

【问题讨论】:

    标签: php jquery mysql autosuggest


    【解决方案1】:

    看起来select 方法的默认行为是将文本框设置为使用value 而不是label。所以使用$( "#searchbox" ).val( ui.item.label ); 是行不通的,不管你放什么字符串。在这种情况下,我们应该停止默认行为。

    event.preventDefault() 放在选择函数中似乎可以解决问题。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-15
      • 2015-01-25
      • 1970-01-01
      • 2018-01-08
      • 2012-06-19
      相关资源
      最近更新 更多