php - 使用 php 将搜索中的两个单独的输入字段合并

标签 php jquery mysql ajax

我有两个单独的输入字段,一个用于搜索姓氏,另一个用于搜索数据库的名称。

<li><label>Surname: </label><input type="text" name="surname" id="search_text" required autocomplete="off" /></li>
<li><label>Name:  </label><input type="text" name="name" id="name" required autocomplete="off"/></li>

    

<script> // first input live search 
            $(document).ready(function() {
        
        $("#search_text").keyup(function () {
                   var txt = $(this).val();  
                  
        setTimeout(function() { 
             if(txt.length>=3)  
                   {  
                        $.ajax({  
                             url:"fetchsurname.php",  
                             method:"post",  
                             data:{search:txt},  
                             dataType:"text",
                            
                             success:function(data)  
                             {  
                                  $('#searchresults').html(data);  
                             }  
                      });  
                   }  
                   else  
                   {  
                        $('#searchresults').html('');                 
                   }  
            }, 2000); // 1 sec delay to check.
        
            }); // End of  keyup function
        
            }); // End of document.ready

    </script>
<script> // second input live search    
    $(document).ready(function() {

$("#name").keyup(function () {
           var txt = $(this).val();  
          
setTimeout(function() { 
     if(txt.length>=3)  
           {  
                $.ajax({  
                     url:"fetchname.php",  
                     method:"post",  
                     data:{search:txt},  
                     dataType:"text",
                    
                     success:function(data)  
                     {  
                          $('#searchresults').html(data);  
                     }  
              });  
           }  
           else  
           {  
                $('#searchresults').html('');                 
           }  
    }, 2000); // 1 sec delay to check.

    }); // End of  keyup function

    }); // End of document.ready
</script>

使用 php fetchname 和 fetchsuurname 两个单独的文件搜索数据库

"SELECT * FROM base WHERE name LIKE '".$_POST["search"]."%'"

"SELECT * FROM base WHERE surname LIKE '".$_POST["search"]."%'"

我的问题是每个字段都在表中搜索自己的值,而不是与第一个字段组合来显示结果。

最佳答案

根据您的html,您应该更改 jQuery 并更改为以下代码:

<li><label>Surname: </label><input type="text" name="surname" id="search_text" required autocomplete="off" /></li>

<li><label>Name:  </label><input type="text" name="name" id="search_name" required autocomplete="off"/></li>

<script> // first input live search 
var keyupfunction = function () {
        var search_text = $("#search_text").val();  
        var search_name = $("#search_name").val();  

        setTimeout(function() { 
            if(txt.length>=3)  
            {  
                $.ajax({  
                    url:"fetchsurname.php",  
                    method:"post",  
                    data:{"surname":search_text, "name":search_name},  
                    dataType:"text",

                    success:function(data)  
                    {  
                        $('#searchresults').html(data);  
                    }  
                });  
            }  
            else  
            {  
                $('#searchresults').html('');                 
            }  
        }, 2000); // 1 sec delay to check.

    }

$(document).ready(function() {
    $("#search_text").keyup(keyupfunction); 
    $("#search_name").keyup(keyupfunction); 
});

您可以在查询中使用:

SELECT * FROM base WHERE name LIKE '".$_POST["name"]."%' AND surname LIKE '".$_POST["surname"]."%'

如果您不希望两个字段都具有值,您也可以使用 from Or

还有另一种解决方案,您可以将 2 个选择合并为 2 个不同的表

SELECT * FROM base WHERE name LIKE '".$_POST["name"]."%'
union all
SELECT * FROM base WHERE surname LIKE '".$_POST["surname"]."%'

关于php - 使用 php 将搜索中的两个单独的输入字段合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37236023/

相关文章:

php - 如何优化这个 mysql 查询?脚本发布

javascript - 如何使用元素名称检查元素在 Javascript 中是否可见?

javascript - 如何将绑定(bind)上下文传递给自定义处理程序调用?

mysql - 在 MySQL 中使用 EXCEPT 时的并发症

mysql - 查找两个不同表中两列中的不一致之处

php 使用外键将简单的 xml 插入到 mysql 数据库表中

php - Laravel 时间 24 小时格式正则表达式错误(无结束分隔符)

php - WooCommerce Checkout url hook - 根据产品类别更改条件

jquery动画问题

php - 回显 &lt;input&gt; 并使用变量作为名称