玖叶教程网

前端编程开发入门

selectpage 修改(怎么给select设置默认值)

php开发问题日志——selectpage 使用

最近修改fastadmin的selectpage,想用js动态修改选中值,查找文档,百度搜索都没有结果,有知道的大神可以留言,告诉我方法,不胜感谢。

在找解决方法时,看到一个属性searchField:查询关键字字段。fastadmin中,并没有这个属性,但是原生的有,我找了一下fastadmin的selectpage.js文件,搜索了词条searchField,找到这个地方

SelectPage.prototype.setOption = function (option) {
  

修改了里面的内容:

SelectPage.prototype.setOption = function (option) {
    //use showField to default

    //option.searchField = option.searchField || option.showField;
    let search_field=option.searchfield || option.searchField || option.showField;
    if(Array.isArray(search_field)){
        var arr = ['searchField'];
        for (var i = 0; i < arr.length; i++) {
            option[arr[i]] = this.strToArray(option[arr[i]]);
        }
    }else{
        option.searchField=search_field.split(',');
    }
    console.log(option);
    option.andOr = option.andOr.toUpperCase();
    if (option.andOr !== 'AND' && option.andOr !== 'OR') option.andOr = 'AND';

    //support multiple field set

然后在view中html中添加了data-searchField="mobile,username,nickname",这样的效果就是可以输入一个关键词,用or搜索三个字段;html代码:

<input id="c-user_id" data-rule="required" data-source="user/user/index" data-params='{"custom[agent_type]":0}' data-field="username"
      data-searchField="username,nickname,mobile" class="form-control selectpage" name="row[user_id]" type="text" value="">

控制器的selectpage方法的相关代码:

$logic = $andor == 'AND' ? '&' : '|';
$searchfield = is_array($searchfield) ? implode($logic, $searchfield) : $searchfield;
$searchfield = str_replace(',', $logic, $searchfield);
$word = array_filter(array_unique($word));
if (count($word) == 1) {
    $query->where($searchfield, "like", "%" . reset($word) . "%");
} else {
    $query->where(function ($query) use ($word, $searchfield) {
        foreach ($word as $index => $item) {
            $query->whereOr(function ($query) use ($item, $searchfield) {
                $query->where($searchfield, "like", "%{$item}%");
            });
        }
    });

从控制器中的代码看,searchfield是可以为数组的;

参数传递的效果:

  1. earchField[]: username
  2. searchField[]: nickname
  3. searchField[]: mobile

同时发送三个搜索字段

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言