【问题标题】:Send hidden input data using AJAX使用 AJAX 发送隐藏的输入数据
【发布时间】:2017-02-28 10:10:20
【问题描述】:

我正在使用AJAX live search 插件。
它将输入数据传递给backend-search.php
backend-search.php 从数据库中选择数据并返回到搜索页面。
现在我想通过搜索查询传递一个隐藏的输入值。

隐藏输入

<input type="hidden" name="group" value="<?php echo $grp_id; ?>" />

以下是我在search.php中的html

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

Javascript

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

上面的js如何发送隐藏输入框的数据?

【问题讨论】:

    标签: javascript php jquery html ajax


    【解决方案1】:

    您可以像这样使用$.post 而不是$.get

    $.post( "backend-search.php?query="+ term, { hidden_key: "hidden_value"})
    .done(function(data) {
        alert( "Data Loaded: " + data );
    });
    

    所以,为您的代码定制它,

    if(term.length) {
        // get value of hidden field
        var hidden_value = $('[name="group"]').value(); 
        // make a post request, but also pass query params 
        $.post("backend-search.php?query=" + term, { group: hidden_value})
           .done(function(data){
               // Display the returned data in browser
               resultDropdown.html(data);
            });
        }
    

    这里,? 标记之后的所有内容都作为查询字符串传递(即通过 get 方法),而隐藏字段则通过 Post 方法传递。 在您的 Php 脚本中,使用 print_r($_REQUEST) 验证您是否获得了所需的 2 个参数。

    此外,您应该像 encodeURIComponent(term) 这样对 URI 参数进行编码,以确保您的 javascript 在用户输入特殊字符时不会中断

    【讨论】:

    • 你能用我的 JS 代码解释一下你的建议吗?
    猜你喜欢
    • 1970-01-01
    • 2015-08-31
    • 2019-12-22
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    相关资源
    最近更新 更多