海豚php表格,表格选取(1.4.3+) · DolphinPHP1.5.0完全开发手册-基于ThinkPHP5.1.41LTS的快速开发框架 · 看云...

## addSelectTable('name值', '标题', '提示', '表格列头' , '表格数据', '选择内容的url'])

标识符:`selectTable`

>[info]1.4.3或更高版本支持。

>[danger] **注意:该功能仅1.4.3版本以上,并且授权版用户才有,普通版没有该功能**。如果您是授权版用户,请登录官网后,在补丁下载页面下载相应补丁。

| 参数 | 含义 | 类型 |

| --- | --- | --- |

| name | name值 | string |

| title | 标题 | string |

| tips | 提示 | string |

| columns | 表格列头 | array |

| data | 表格数据 | array |

| url | 选择内容的url | string |

```

$columns = [

'id' => 'ID',

'username' => '用户名',

'nickname' => '昵称',

];

// 使用ZBuilder快速创建表单

return ZBuilder::make('form')

->addFormItems([ // 批量添加表单项

['selectTable', 'test', '测试', '', $columns],

])

->fetch();

```

效果:

![](https://img.kancloud.cn/64/7e/647e51230ef8f37b7f637b39f852f976_1021x174.png)

目前还没有任何数据,点击“选择测试”按钮可打开弹窗选取表格数据,但必须先设置url。

```

$columns = [

'id' => 'ID',

'username' => '用户名',

'nickname' => '昵称',

];

// 使用ZBuilder快速创建表单

return ZBuilder::make('form')

->addFormItems([ // 批量添加表单项

['selectTable', 'test', '测试', '', $columns, [], url('ajax/getUserList')],

])

->fetch();

```

为避免系统检测节点权限,这里我将代码写在ajax控制器,ajax控制没有继承admin类,所以不会检测节点权限。当然,也可以写在当前控制器,记得在节点管理添加对应的节点即可。

getUserList()方法用ZBuilder创建表格即可。

```

public function getUserList()

{

$data_list = Db::name('admin_user')->paginate();

return ZBuilder::make('table')

->addColumns([

['id', 'ID'],

['username', '用户名'],

['nickname', '昵称']

])

->setRowList($data_list)

->fetch();

}

```

这时候点击“选择测试”按钮会弹出显示用户列表。

![](https://img.kancloud.cn/49/b4/49b45614f11323ef4d6a650d3364d587_1171x229.png)

>[danger]这里有个地方要注意,1.getUserList()方法创建表格显示的列要和$columns定义的一致,包括列数和位置都要一致。

接下来,需要给表格添加一个顶部按钮,用于选取数据。

```

public function getUserList()

{

$data_list = Db::name('admin_user')->paginate();

return ZBuilder::make('table')

->addTopButton('select', [

'title' => '确定',

'icon' => 'fa fa-check',

'class' => 'btn btn-primary',

'id' => 'js-confirm',

'data-name' => 'test'

])

->addColumns([

['id', 'ID'],

['username', '用户名'],

['nickname', '昵称']

])

->setRowList($data_list)

->fetch();

}

```

添加的顶部按钮,需要添加id为“`js-confirm`”,并且定义data-name为创建selectTable表单项时的name值,比如上面添加的是

```

['selectTable', 'test', '测试', '', $columns, [], url('ajax/getUserList')],

```

所以按钮需要添加`data-name=>'test'`

到这里,还需要添加一个js文件

```

public function getUserList()

{

$data_list = Db::name('admin_user')->paginate();

return ZBuilder::make('table')

->addTopButton('select', [

'title' => '确定',

'icon' => 'fa fa-check',

'class' => 'btn btn-primary',

'id' => 'js-confirm',

'data-name' => 'test'

])

->addColumns([

['id', 'ID'],

['username', '用户名'],

['nickname', '昵称']

])

->setRowList($data_list)

->js('../extend/form/selectTable/selectTable')

->fetch();

}

```

这时候,点击“选择测试”按钮,弹窗显示列表,勾选后,点击“确定”即可。

![](https://img.kancloud.cn/81/a6/81a685abd7ee718992501380139025ca_1184x253.png)

![](https://img.kancloud.cn/c4/5b/c45bda5b4670215820ca265b5a6d16e2_1026x190.png)

>[info]因为getUserList方法用ZBuilder创建的,所以你可以使用筛选,排序等等功能。

```

public function getUserList()

{

$map = $this->getMap();

$order = $this->getOrder();

$data_list = Db::name('admin_user')->where($map)->order($order)->paginate();

return ZBuilder::make('table')

->addTopButton('select', [

'title' => '确定',

'icon' => 'fa fa-check',

'class' => 'btn btn-primary',

'id' => 'js-confirm',

'data-name' => 'test'

])

->addColumns([

['id', 'ID'],

['username', '用户名'],

['nickname', '昵称']

])

->setSearch('username,nickname')

->addOrder('username,nickname')

->setRowList($data_list)

->js('../extend/form/selectTable/selectTable')

->fetch();

}

```

![](https://img.kancloud.cn/20/b5/20b53707da14b59d11294875f84e3b98_1179x253.png)

选取后,会将对应的值回传到父窗口,提交表单,会自动将所选值发送给服务器,接收的是一个数组,具体可以自己打印`$this->request->post();`查看

>[danger]注意,选取的数据有可能重复,比如选取了两次一样的数据

![](https://img.kancloud.cn/fd/63/fd63d82dbbb23b66381e5d511d5b30a7_1037x217.png)

服务器会接收到两个id为1的数据,这里需要开发者自行过滤,比如:

```

$post = $this->request->post();

$post['test'] = array_unique($post);

```

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/429001.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Number Sequence (KMP的应用)

个人心得&#xff1a;朴素代码绝对超时&#xff0c;所以要用到KMP算法&#xff0c;特意了解了&#xff0c;还是比较抽象&#xff0c;要多体会 Given two sequences of numbers : a11, a22, ...... , aNN, and b11, b22, ...... , bMM (1 < M < 10000, 1 < N < 1000…

java实现gdal栅格矢量化,《GDAL源码剖析与开发指南》一一1.5 GDAL源码目录

本节书摘来自异步社区出版社《GDAL源码剖析与开发指南》一书中的第1章&#xff0c;第1.5节&#xff0c;作者&#xff1a;李民录 更多章节内容可以访问云栖社区“异步社区”公众号查看。1.5 GDAL源码目录GDAL源码剖析与开发指南下载的GDAL源代码压缩包目录如图1-2所示&#xff0…

Cocos2d-X开发中国象棋《九》走棋规则

在上一节中实现了走棋&#xff0c;这篇博客将介绍中国象棋中的走棋规则 在写博客前先可能一下象棋的走棋规则&#xff1a; 1&#xff09;将 将的坐标关系&#xff1a;横坐标相等&#xff0c;纵坐标相减绝对值等于1&#xff0c;或者纵坐标相等&#xff0c;横坐标相减绝对值等于1…

php代码expl,php – 参数号无效:参数未定义Explination

我使用一个简单的测试表来尝试调试此错误.我试着写一个脚本,用户可以更新他们的用户信息,我搜索过但没有找到任何具体的帮助我.我的测试代码如下&#xff1a;PHPif(isset($_POST[submitBtn])){//Display Errors{{ PDO::ATTR_ERRMODE; }}$db->setAttribute( PDO::ATTR_ERRMOD…

js学习总结----编写简单的ajax方法库

具体代码如下: ~function(){//ajax:实现ajax请求的公共方法;当一个方法传递的参数过多&#xff0c;而且还不固定&#xff0c;我们使用对象统一传值法&#xff08;把需要传递的参数值都放在一个对象中&#xff0c;一起传递进去即可&#xff09;function ajax(options){//把需要使…

netlify支持php吗,hexo netlify 搭建简易博客

npm install hexo-cli -ghexo init blogcd blognpm installhexo server将本地文件夹推送到github修改主题git clone https://github.com/jangdelong/hexo-theme-xups.git themes/xups themes/xups修改yml配置文件重新hexo server自己的博客sleepy-poincare-e0ca11.netlify.c…

jps、jstack、jmap、jhat、jstat、hprof使用详解

https://my.oschina.net/feichexia/blog/196575#comment-list A、 jps(Java Virtual Machine Process Status Tool) jps主要用来输出JVM中运行的进程状态信息。语法格式如下&#xff1a; 如果不指定hostid就默认为当前主机或服务器。 命令行参数选项说明如下&#xff1a;…

oracle数据库日期格式的运算,Oracle时间类型date,timestamp时间差计算

Oracle的时间类型有两种date和timestamp. date精确到秒,timestamp精确到毫秒.1.计算date类型的时间差可以先把年,月,日,小时,分,秒用to_char函数拆分出来,再用to_number函数转换成数值类型.有了这些单独分开的时间就好办了.就再一个个的去减,记得考虑单位换算就行.比如都转换…

pta乙级之路

1017 A除以B (20分) #include #include #include<math.h> using namespace std; int main() { string str; cin>>str; int n,ch[1009]; cin>>n; int lenstr.length(); for (int i0;i<len;i){ ch[i]str[i]-‘0’; } for (int i0;i<len-1;i){ ch[i1]10*(…

oracle禁止修改密码,Oracle 用户密码过期后不允许修改密码的示例代码

--本人是初学者&#xff0c;不知道还有没有更好的方法create table PASSWD_CHANGED(USER_NAME VARCHAR2(20),OLD_PASSWD VARCHAR2(100),NEW_PASSWD VARCHAR2(100))CREATE OR REPLACE FUNCTION my_password_verify(usernameVARCHAR2,passwordVARCHAR2,old_passwordVARCHAR2)RETU…

查看网关

简单记两个 [rootoracle ~]# ip route show default via 192.0.2.2 dev eth0 proto static 192.0.2.0/24 dev eth0 proto kernel scope link src 192.0.2.110 metric 1 [rootoracle ~]# route -n Kernel IP routing table Destination Gateway Genmask …

double的四舍五入和上下取整

在头文件中有math。 向上取整&#xff1a;ceil(double x); 向下取整&#xff1a;floor(double x); 四舍五入&#xff1a;round(double); 特别注意&#xff1a;在C语言中上面的三个函数返回的是double型的。 但是&#xff1a; #include<iostream> #include<cmath> …

url去除掉一个参数php,php怎样去掉url中的参数_后端开发

php去掉url中的参数的要领是&#xff1a;能够经由过程trim()函数来完成。该函数能够删除字符串中的指定字符&#xff0c;并返回已修正的字符串。细致使用要领如&#xff1a;【trim($url,"?");trim($url,"#");】。相干函数引见&#xff1a;(引荐教程&#…

C++之类的静态成员变量和静态成员函数

static静态成员函数 在类中。static 除了声明静态成员变量&#xff0c;还能够声明静态成员函数。普通成员函数能够訪问全部成员变量。而静态成员函数仅仅能訪问静态成员变量。我们知道。当调用一个对象的成员函数&#xff08;非静态成员函数&#xff09;时&#xff0c;系统会把…

Oracle杀事务数据库崩溃,关于pl/sql dev窗口崩溃导致锁表

今天在用pl/sql dev写sql的时候&#xff0c;刚刚写到一个select XXX from table for update,打开了锁的按钮&#xff0c;进行了数据修改&#xff0c;这个时候没有commit&#xff0c;因为临时有事&#xff0c;所以先出去一会&#xff0c;半个小时回来后&#xff0c;发现点击pl/s…

使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之一

好吧&#xff0c;现在我们假设你已经安装好了VS Code开发工具、.Net Core 2.0预览版的SDK dotnet-sdk-2.0.0&#xff08;注意自己的操作系统&#xff09;&#xff0c;并且已经为VS Code安装好了C#扩展&#xff08;在VS Code的扩展菜单中输入OmniSharp&#xff0c;安装扩展即可&…

oracle12 扩充表空间,oracle查询及扩充表空间

查询表空间目录及是否自动扩展select file_id,file_name,tablespace_name,autoextensible,increment_by from dba_data_files order by file_id desc;总的表空间情况select substr(a.tablespace_name,1,15) tablespacename,sum(a.bytes/1024/1024) as "totle_size(M)"…

WPF--TextBlock的ToolTip附加属性

大家可能在项目中&#xff0c;有的时候&#xff0c;由于显示的内容过长&#xff0c;所以&#xff0c;需要显示一部分内容&#xff0c;然后后面用省略号&#xff0c;把鼠标放上去&#xff0c;会显示出来全部的内容。 作为一个LowB程序员的我&#xff0c;第一反应是SubString截取…

L2-001 紧急救援 (25 分)

L2-001 紧急救援 (25 分)作为一个城市的应急救援队伍的负责人&#xff0c;你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候&#x…

oracle 虚拟补丁,趋势科技虚拟补丁(Virtual Patch)

本帖最后由 vger520 于 2012-4-26 09:20 编辑预先防止漏洞遭到攻击Virtual Patch(虚拟补丁)实际案例微软最近紧急通知系统管理员立即安装一个影响所有 Windows 系统的重大安全更新&#xff1a;「MS12-020远程桌面的漏洞可能会允许远端执行程序码」。而趋势科技的客户在该漏洞发…