【问题标题】:Multiple Request Search via Jqgrid & SQL通过 Jqgrid 和 SQL 进行多请求搜索
【发布时间】:2018-03-19 17:37:35
【问题描述】:

我试图在一个页面中使用多个输入字段,人们会从一个输入字段中选择“a”,然后从第二个输入字段中选择“b”,从而导致数据库调用数据库将获取并输出数据从那些列。

示例:我有一个类别称为“水果”,另一个类别称为“颜色”。用户会选择“apple”,然后选择“red”——数据库只会调用红苹果。或者用户只能选择 "apple" ,将其他表单字段留空,数据库将调用所有苹果(红色、绿色等)。

目前我有如下内容,您可以搜索一个字段,但是一旦您尝试搜索多个,代码就不允许同时搜索,只有一个......不知道为什么。任何朝着正确方向的线索都会非常有帮助!

页面代码:

<input onkeydown="doSearch(event)" id="a" type="text" class="form-control" placeholder="a">
<input onkeydown="doSearch(event)" id="b" type="text" class="form-control" placeholder="b">
<input onkeydown="doSearch(event)" id="c" type="text" class="form-control" placeholder="c">

网格重载代码:

function gridReload(){
        searchData = {
            a: jQuery("#a").val(),
            b: jQuery("#b").val(),
            c: jQuery("#c").val(),
                 }

var gridParam = { url: "server.php", datatype: "json", postData: searchData, page: 1 };        
        jQuery("#grid").jqGrid('setGridParam', gridParam).trigger("reloadGrid");
}

PHP SQL 代码:

$query = array();
if( isset($_REQUEST['data'])){
    $cond = ' ';
    $a = $_REQUEST['a'];
    $b = $_REQUEST['b'];
    $c = $_REQUEST['c'];

    if( !empty( $a ) ) $cond .= "WHERE db.a like '%$a%'";
    if( !empty( $b ) ) $cond .= "WHERE db.b like '%$b%'";
    if( !empty( $c ) ) $cond .= "WHERE db.c like '%$c%'";

想法:查看我的 POST 数据,它正在正确发布所有搜索信息,我认为问题是根据搜索的内容在 SQL 代码中动态插入“AND” - 不知道会怎样已经完成了....

【问题讨论】:

    标签: php sql jqgrid


    【解决方案1】:

    一种可能的解决方案是玩具推动数组中的条件并像这样使用内爆

    $query = array();
    if( isset($_REQUEST['data'])){
        $a = $_REQUEST['a'];
        $b = $_REQUEST['b'];
        $c = $_REQUEST['c'];
        $where = array();
        if( !empty( $a ) ) $where[] = "db.a like '%$a%'";
        if( !empty( $b ) ) $where[] = "db.b like '%$b%'";
        if( !empty( $c ) ) $where[] = "db.c like '%$c%'";
        $cond = "";
    
        if(count($where) > 0 ) { 
            $cond = " WHERE ".implode(" AND ", $where);
        } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-27
      • 1970-01-01
      • 1970-01-01
      • 2015-11-28
      • 2011-11-02
      • 1970-01-01
      • 2018-12-15
      相关资源
      最近更新 更多