找到下拉关联id要查询的那个控制器,然后index方法下面有一个:
//如果发送的来源是Selectpage,则转发到Selectpage if ($this->request->request('keyField')) { return $this->selectpage(); }
*如果查询的那个控制器没有index方法,就去admin/libary/traits/Backend.php里去复制一个index方法到查询的那个控制器当中
把return $this->selectpage();干掉,然后自己写查询数据返回,返回的变量需要有list和total,list是数据,total是条数,再加上模糊查询和编辑时候的默认选中,另外你还可以修改展示的名称,以下是参考的写法:
if ($this->request->request('keyField')) { #定义空数组 $b = array(); #判断是否有手动输入的查询名称 if(!$this->request->request('name')){ #条件为true $where = 1; }else{ #like模糊查询 $where = "name like"."'%".$this->request->request('name')."%' or id like"."'%".$this->request->request('name')."%'"; } $a['list'] = db::name('goods')->where($where)->page($this->request->request('pageNumber'),10)->select(); $a['total'] = db::name('goods')->where($where)->count(); #判断是否有值,有值则为打开编辑时默认返回的,没有值的时候是添加点击事件传过来的 if($this->request->request('keyValue')){ $a['list'] = db::name('goods')->where(['id'=>$this->request->request('keyValue')])->find(); $b['list'][0] = $a['list']; }else{ foreach($a['list'] as $k=>$v){ $b['list'][$k] = $v; } #分页条数 $b['total'] = $a['total']; } foreach($b['list'] as $k=>$v){ #返回的是name,这里可以自定义返回的内容 if($v['activeswitch']==1){ $b['list'][$k]['name'] = '商品ID:'.$v['id'].'---商品名称:'.$v['name'].'---类型:活动专属'; }else{ $b['list'][$k]['name'] = '商品ID:'.$v['id'].'---商品名称:'.$v['name'].'---类型:普通商品'; } } #返回下拉数据 return $b; }
$this->request->request('keyField')中的keyField只是一个参数,你可以打开f12然后点击下拉的时候看headers最下面传的参数,有好几个,包括keyField、name、keyValue等等.
效果图:
希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。