首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向w2ui网格中添加筛选搜索按钮

向w2ui网格中添加筛选搜索按钮
EN

Stack Overflow用户
提问于 2022-04-06 02:42:43
回答 1查看 126关注 0票数 0

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

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

当我点击这个按钮时,数据不会改变。理想情况下,第一次单击将执行搜索,再次单击它将删除搜索。

EN

回答 1

Stack Overflow用户

发布于 2022-11-15 12:20:01

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

代码语言:javascript
复制
$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;}  

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71760480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档