单击时 jQuery 自动完成将整个列表获取到输入

发布于 2024-12-10 12:30:13 字数 1164 浏览 0 评论 0原文

我正在使用 jQuery 进行自动完成,当我单击列表中的 1 个项目时,输入会获取列表中的所有项目(甚至是

  • ..< /li >)
  • 这是我调用的脚本

           if($_GET['q']) {
            $queryString = $db->real_escape_string($_GET['q']);
    
            if(strlen($queryString) >0) {
    
                $query = $db->query("SELECT * FROM .... WHERE name LIKE '%$queryString%'");
                if($query) {
                    while ($result = $query ->fetch_object()) {
    
                        echo "<li>$result->name</li>";
    
    
                    }
                } else {
                    echo 'ERROR: There was a problem with the query.';
                }
            } else {
                // Dont do anything.
            } // There is a queryString.
        } else {
            echo 'There should be no direct access to this script!';
        }
    

    这就是 jQuery

    <script type="text/javascript">
    $(function() {
    $("#ac3").autocomplete({
        url:'searchcond.php',   
         select: function(event, ui) {
            console.dir(ui);
            event.preventDefault();
            $("#ac3").text(ui.item.label);
        }
        });
        });
    </script>
    

    另外,当我输入某些内容时,它没有得到它。我必须快速输入才能得到正确的查询

    I am using jQuery to do an autocomplete and when I click 1 item on the list the input gets all the items of the list(even the < li >..< /li >)

    This is the script which I call

           if($_GET['q']) {
            $queryString = $db->real_escape_string($_GET['q']);
    
            if(strlen($queryString) >0) {
    
                $query = $db->query("SELECT * FROM .... WHERE name LIKE '%$queryString%'");
                if($query) {
                    while ($result = $query ->fetch_object()) {
    
                        echo "<li>$result->name</li>";
    
    
                    }
                } else {
                    echo 'ERROR: There was a problem with the query.';
                }
            } else {
                // Dont do anything.
            } // There is a queryString.
        } else {
            echo 'There should be no direct access to this script!';
        }
    

    And this is the jQuery

    <script type="text/javascript">
    $(function() {
    $("#ac3").autocomplete({
        url:'searchcond.php',   
         select: function(event, ui) {
            console.dir(ui);
            event.preventDefault();
            $("#ac3").text(ui.item.label);
        }
        });
        });
    </script>
    

    Also when I type something it does not get it. I have to type it fast to get the correct query

    如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

    扫码二维码加入Web技术交流群

    发布评论

    需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

    评论(2

    蓝颜夕 2024-12-17 12:30:13

    我记得 jquery 自动完成只需要一个键|值列表(每行一个)响应,而不是 UL-LI 列表:

    EG:

    echo "$key|$value\n";

    while ($result = $query ->fetch_object()) {
         echo "$result->name\n";
    }
    

    I remember that jquery autocomplete wants just a list of key|values (one per line) response and not an UL-LI list:

    EG:

    echo "$key|$value\n";

    while ($result = $query ->fetch_object()) {
         echo "$result->name\n";
    }
    
    彼岸花ソ最美的依靠 2024-12-17 12:30:13

    要修复正确的查询,您可以在搜索之前添加延迟或 minChars 选项: http ://docs.jquery.com/Plugins/Autocomplete/autocomplete#url_or_dataoptions

    要获取文本,请尝试: $("#ac3").text(ui.item.label.text());

    To fix the correct query, you can add an option to delay or the minChars before the search: http://docs.jquery.com/Plugins/Autocomplete/autocomplete#url_or_dataoptions

    To get the text, try: $("#ac3").text(ui.item.label.text());

    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文