【问题标题】:Adding a filter search button to w2ui grid向 w2ui 网格添加过滤器搜索按钮
【发布时间】:2022-11-15 20:34:33
【问题描述】:

对于我的 w2ui 网格,我希望有几个搜索按钮来过滤数据是预定义的方式。 (例如,“Big West”按钮可搜索以“Big West”作为会议的行。

<button class="w2ui-btn" onclick="var obj = w2ui['grid']; obj.search({ field : 'conference', value : 'Big West', operator : 'contains', type: 'text' });">Big West</button>

当我单击此按钮时,数据不会改变。理想情况下,第一次点击会进行搜索,再次点击会取消搜索。

【问题讨论】:

    标签: javascript w2ui


    【解决方案1】:

    如果你使用 w2ui 网格,它有很棒的搜索按钮,但你需要在数据源文件中进行自定义以过滤我粘贴脚本的行 PHP 及其工作非常适合 w2ui 网格,并将简化整个过程,并将其用作后端并为您的工作进行适当的定制:


    $action = $_REQUEST[request];
    $action = json_decode($action, true);
     $vlimit = $action['limit'];
      $voffset = $action['offset'];
       $str = "";
        $err = "";
          $sql = "";
          switch ($action['cmd']) {
            case 'get':
            if (isset($action['search']) && is_array($action['search'])) {
                foreach ($action['search'] as $s => $search) {
                        if ($str != "")
                            $str .= " " . $action['searchLogic'] . " ";
                        $field = $search['field'];
                        switch (strtolower($search['operator'])) {
    
                            case 'begins':
                                $operator = "LIKE";
                                $value = "'" . $search['value'] . "%'";
                                break;
    
                            case 'ends':
                                $operator = "LIKE";
                                $value = "'%" . $search['value'] . "'";
                                break;
    
                            case 'contains':
                                $operator = "LIKE";
                                $value = "'%" . $search['value'] . "%'";
                                break;
                            case 'is':
                                $operator = "=";
                                if (!is_int($search['value']) && !is_float($search['value'])) {
                                    //  $field = "LOWER($field)";
                                    // $value = "LOWER('".$search['value']."')";
                                    $value = "'" . $search['value'] . "'";
                                } else {
                                    $value = "'" . $search['value'] . "'";
                                }
                                break;
                            case 'between':
                                $operator = "between";
                                $value = "'" . $search['value'][0] . "' and '" . $search['value'][1] . "'";
                                break;
                            case 'more':
                                $operator = ">";
                                $value = "'" . $search['value'] . "'";
                                break;
                            case 'less':
                                $operator = "<";
                                $value = "'" . $search['value'] . "'";
                                break;
                            default:
                                $operator = "=";
                                $value = "'" . $search['value'] . "'";
                        }
                        $str .= $field . " " . $operator . " " . $value;
                    }
    
            $sql = "select *   from [table] "
                    . " WHERE  ~search~  limit $vlimit offset $voffset ";
            $sql = str_ireplace("~search~", $str, $sql);
    
            }   
            else
    
            {
                $sql = "select *   from [table] ";
    
    
            }
    
            echo '{"status": "error","message":"' . $sql . '"}';
            break;
                $stm = $conn->query($sql);
                $result = $stm->fetchAll(PDO::FETCH_ASSOC);
                $number = $stm->rowCount();        
                $json = json_encode($result, JSON_UNESCAPED_UNICODE);
    
                header("Content-type: application/json");
                echo '{"total" : "' . $number . '","records" : ' . $json . '}';
    
                break;
    
    
    
    
            case 'delete':
    
                $rec_id = $action['selected'][0];
                $sql = "DELETE FROM [table] WHERE rec_id =  :recid";
    
                $stmt = $accountdb->prepare($sql);
                $stmt->bindParam('recid', $rec_id);
    
               try {
                                $stmt->execute();
                               echo '{"status" : "success"}';
                               break;
                            } catch (Exception $err) {
    
                                echo '{"status": "error","message":"' . $err->getMessage() . '"}';
                                break;
                            }
    
    
    
    
    
            case 'save':
               /**/
                break;
    
            default:
                $err = 'default  error';
                echo '{"status": "error","message":"' . $err . '"}';
    
                break;
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-11
      • 1970-01-01
      • 1970-01-01
      • 2020-12-13
      相关资源
      最近更新 更多