javascript - 单击 mysql ajax 下拉菜单后重定向到链接

标签 javascript php jquery mysql ajax

我正在开发一个搜索菜单,其下方有建议下拉菜单。如果您点击建议,您应该重定向到产品。

我目前正在使用此代码:

<script type="text/javascript">
$(document).ready(function(){
    $('.search-box input[type="text"]').on("keyup input", function(){
        /* Get input value on change */
        var inputVal = $(this).val();
        var resultDropdown = $(this).siblings(".result");
        if(inputVal.length){
            $.get("./includes/backend-search.php", {term: inputVal}).done(function(data){
                // Display the returned data in browser
                resultDropdown.html(data);
                var link = data;
            });
        } else{
            resultDropdown.empty();
        }
    });

    // Set search input value on click of result item
    $(document).on("click", ".result p", function(){
        $(this).parents(".search-box").find('input[type="text"]').val($(this).text());
        $(this).parent(".result").empty();
        window.location = link;
    });
});
</script>

这是我的 html 搜索框

<div class="search-box">
            <input type="text" autocomplete="off" placeholder="Search product..." />
            <div class="result"></div>
        </div>

我目前正在尝试使用 onclick 函数中的 window.location 函数打开链接。其中链接被设置为来自建议数据的 var。

到目前为止,它还没有工作,没有打开任何链接等等。 有谁知道如何解决这个问题? 谢谢,-朱利安。

最佳答案

我认为您想要实现这样的目标。您错误地声明了链接。你应该将其声明为全局的。希望它对您有用。

$(document).ready(function(){
var link;
    $('.search-box input[type="text"]').on("keyup input", function(){
        /* Get input value on change */
        var inputVal = $(this).val();
        var resultDropdown = $(this).siblings(".result");
        if(inputVal.length){
           for(var i = 0; i<= 20; i++){
                var suggessions = "<p>" + i + "</p>";
                resultDropdown.html(suggessions);
                link = i;
            }
        } else{
            resultDropdown.empty();
        }
    });

    // Set search input value on click of result item
    $(document).on("click", ".result p", function(){
        $(this).parents(".search-box").find('input[type="text"]').val($(this).text());
        $(this).parent(".result").empty();
        console.log(link);
        window.location = link;
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="search-box">
            <input type="text" autocomplete="off" placeholder="Search product..." />
            <div class="result"></div>
        </div>

您编写的实际 Js 代码是这样的。

$(document).ready(function(){
    var link;
        $('.search-box input[type="text"]').on("keyup input", function(){
            /* Get input value on change */
            var inputVal = $(this).val();
            var resultDropdown = $(this).siblings(".result");
            if(inputVal.length){
               $.get("./includes/backend-search.php", {term: inputVal}).done(function(data){
            // Display the returned data in browser
            resultDropdown.html(data);
            link = data;
        });
            } else{
                resultDropdown.empty();
            }
        });

        // Set search input value on click of result item
        $(document).on("click", ".result p", function(){
            $(this).parents(".search-box").find('input[type="text"]').val($(this).text());
            $(this).parent(".result").empty();
            console.log(link);
            window.location = link;
        });
    });

这对你有用。

关于javascript - 单击 mysql ajax 下拉菜单后重定向到链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45732602/

相关文章:

jQuery 3d 滑动切换过渡

javascript - backbonejs的set方法无法工作

javascript - 将对象数组分解为单独的变量以进行数据库存储(React、express、sql server)

JavaScript - 全局命名空间、窗口或什么都没有?

javascript - iPhoto 相册过渡

用于从 POST 表单向 mySQL 添加数据的 php

javascript - 一直向下滚动到 div 可见的位置

php - 使用 PHP 将 javascript 数组添加到数据库的想法

php - 如何使用 Google OAuth 获取 Google 通讯录信息?

javascript - 缓存刷新页面后 Bootstrap 工具提示不起作用