Think php (TP5)源码如下:
add控制器(Yk.php):
<?php
namespace appackcontroller;
use thinkController;
header("content-type:text/html;charset=utf-8");
class Yk extends Controller{
public function add(){
if(request()->isPost()){
// 实例化model 第一种方式a
$yk_model = new YkModel;
// 获取的是字符串 用/a修饰符 强制转化为数组类型
// 分别赋值
$name = input('name/a');
$age = input('age/a');
// array_map — 将回调函数作用到给定数组的单元上
$data = array_map(function($name, $age){
return array('age' => $age, 'name' => $name);
}, $name, $age, $ks_name, $three);
// 利用助手函数Db方法 第二种方式b
$res = Db('yk')->insertAll($data);
// 利用model的方法 第一种方式a
// insertAll 只需要Db助手函数 与 saveAll 需要实例化model
// $res=$yk_model->saveAll($c);
// var_dump($res);die;
if($res){
$this->success('添加成功','lists');
}else{
$this->error('添加失败');
}
}else{
return $this->fetch('demo');
}
}
add视图(add.html):
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>TP5批量添加</title>
</head>
<body>
// 提交方法add 提交方式 post
<form action="{:url('add')}" method="post">
//加一个[]成数组
姓名:<input type="text" name="name[]"><br>
年龄:<input type="text" name="age[]"><br>
// 给一个class名称 此处是多条添加区域
<div class="duo"></div>
// 赋给普通按钮一个点击效果触发JS
<input type="button" value="+" onclick="dianji()">
// 提交form表单
<input type="submit" value="提交">
</form>
</body>
</html>
<!-- 引入JS样式 -->
<script type="text/javascript" src="/static/back/js/jq.js"></script>
<script type="text/javascript">
// 点击事件触发
function dianji(){
// 定义一个空值用来接收多条添加的数据
var str = "";
// 这里面就是你要多条添加的数据和上面的一样 复制下来即可 最重要是name的 name[]
str = "姓名:<input type='text' name='name[]'><br />年龄:<input type='text' name='age[]'>";
// 赋给上面class为duo的div append在每个匹配元素里面的末尾处插入参数内容。
$('.duo').append(str);
}
</script>
lists控制器(Yk.php):
public function lists(){
// 利用助手函数Db 查看数据表中内容
$info = Db('yk')->select();
// assign 渲染模板变量数据到前台
$this->assign('info',$info);
// 跳转至lists.html
return $this->fetch('lists');
}
lists视图(lists.html):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<table border="1" cellspacing="0">
<a href="{:url('add')}">添加</a>
<tr>
<th>ID</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<!-- 循环出来数据 -->
{foreach $info as $v}
<tr>
<td>{$v.id}</td>
<td>{$v.name}</td>
<td>{$v.age}</td>
</tr>
</table>
</body>
</html>
目录截图:
数据表截图:
模型(model):
<?php
namespace appackmodel;
use thinkModel;
class Yk extends Model{
}
?>
注:仅用于所有字段批量添加否则无法完成。