yii2 单页面增删改
视图层
<style>
#tab tr td{
height:40px;
width:100px;
}
</style>
<form action="index.php?r=ceshi/index" method='post'>
<input name="_csrf" type="hidden" id="_csrf" value="<?= Yii::$app->request->csrfToken ?>">
<table id="tab">
<tr>
<td></td>
<td>显示顺序</td>
<td>站点名称</td>
<td>站点URL</td>
<td></td>
</tr>
<?php foreach($info as $key=>$v): ?>
<tr>
<input type="hidden" name="cid[]" value="<?php echo $v['id']; ?>" />
<td><input type="checkbox" name="check[]" class="ids" value="<?php echo $v['id'] ?>"></td>
<td><input type="text" name="order[]" value="<?php echo $v['order']; ?>" size="3" /></td>
<td><input type="text" name="title[]" value="<?php echo $v['title']; ?>" size="8" /></td>
<td><input type="text" name="url[]" value="<?php echo $v['url']; ?>" /></td>
<td></td>
</tr>
<?php endforeach; ?>
<tr>
<td></td>
<td colspan="4"><a href="javascript:;" onclick="jia(this)" >+添加友情链接</a></td>
</tr>
<tr>
<td><input type="checkbox" id="all" onclick="getAll(this)" />删?</td>
<td colspan="4">
<input type="submit" value="提交" />
</td>
</tr>
</table>
</form>
<script>
//点击添加一行
function jia(obj){
var tr=$(obj).parent().parent();
//点击加一行
var html='<tr><td></td><td><input type="text" name="order[]" size="3" /></td><td><input type="text" name="title[]" size="8" /></td><td><input type="text" name="url[]" /></td><td><input type="button" value="删除" onclick="del(this)" /></td></tr>';
tr.before(html);
}
//点击删除当前行
function del(obj){
$(obj).parent().parent().remove();
}
//全选
function getAll(ts){
var ids = $('.ids');
//alert(ids.length);
for(var i=0;i<ids.length;i++){
if(ts.checked==true){
ids[i].checked=true;
}else{
ids[i].checked=false;
}
}
}
</script>
控制器层
<?php
namespace frontend\controllers;
use Yii;
use frontend\models\Ceshi;
use yii\db\Query;
class CeshiController extends \yii\web\Controller
{
public function actionIndex()
{
//判断是否为提交表单
if(Yii::$app->request->ispost){
//判断是否为删除操作
if(Yii::$app->request->post('check')){
$check = Yii::$app->request->post('check');
//var_dump($check);die;
$str = '';
for($i=0 ; $i<count($check) ; $i++){
$sql = "delete from ceshi where id=".$check[$i];
if(Yii::$app->db->createCommand($sql)->execute()){
$str++;
}
}
if($str!=''){
echo "<script>alert('删除成功'); location.href='index.php?r=ceshi/index'; </script>";
}
}else{
//执行修改和添加操作
//var_dump(Yii::$app->request->post());die;
$cid = Yii::$app->request->post('cid');
$orders = Yii::$app->request->post('order');
$titles = Yii::$app->request->post('title');
$urls = Yii::$app->request->post('url');
$flage = '';
foreach ($orders as $k=>$v){
//判断是否有ID传值
if(!empty($cid[$k])){
$order = $v;
$title = $titles[$k];
$url = $urls[$k];
$id = $cid[$k];
//echo $id;exit;
$res = Yii::$app->db->createCommand()->update('ceshi', [
'order' => $v,
'url' => $url,
'title' => $title
] , "id=$id")->execute();
//数据可能没被修改,只有成功一条就改变标记的值
if($res){
$flage = '1';
}
}else{
$order = $v;
$title = $titles[$k];
$url = $urls[$k];
$res = Yii::$app->db->createCommand()->insert('ceshi', [
'order' => $v,
'url' => $url,
'title' => $title
])->execute();
if($res){
$flage = '1';
}
}
}
//判断是否成功
if($flage=='1'){
echo "<script>alert('修改/添加成功'); location.href='index.php?r=ceshi/index'; </script>";
}else{
echo "<script>alert('无任何操作'); location.href='index.php?r=ceshi/index'; </script>";
}
}
}
$query = new Query();
//查询所有数据
$info = $query
->select('*')
->from('ceshi')
->orderBy(['order' => SORT_ASC])
->all();
return $this->render('index' , ['info' => $info]);
}
}
另一种表单,0-0
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
$form = ActiveForm::begin(['method'=>'post','action' => 'index.php?r=test/index']);
?>
<style>
#tab tr td{
height:40px;
width:100px;
}
</style>
<table id='tab'>
<tr>
<td><input type='checkbox' /></td>
<td>显示顺序:</td>
<td>站点名称:</td>
<td>站点地址:</td>
</tr>
<?php foreach ($data as $key=> $v):?>
<tr id='tr1'>
<input type="hidden" name="cid[]" value="<?php echo $v['id']; ?>" />
<td><input type='checkbox' name='check[]' class='ids' value="<?php echo $v['id']?>" /></td>
<td><input type='text' name='t_xu[]' value="<?= $v['t_xu']?>" size="3"/></td>
<td><input type='text' name='t_name[]' value="<?= $v['t_name']?>"size="8" /></td>
<td class='td1'><input type='text' name='t_url[]' value="<?= $v['t_url']?>" /></td>
</tr>
<?php endforeach; ?>
<tr id='tr2'></tr>
</table>
<input type='button' value='+' id='btn' />添加友情链接
<p><input type='checkbox' onclick='getAll(this)' />
删?
<input type='submit' id='btnok' value='提交'/></p>
<?php ActiveForm::end()?>
<?php $this->beginBlock('checkAgree');?>
$('#btn').on('click',function()
{
//var trhtml = "<td><input type='checkbox' name='id' /></td><td><input type='text' name='t_xu' /></td><td><input type='text' name='t_name'/></td><td><input type='text' name='t_url' /></td>";
//alert(trhtml);
//$('#tr2').append(trhtml);
var tab=document.getElementById('tab');
var n=document.getElementById('tr2').rowIndex+1;
var tr=tab.insertRow(n);
var td=tr.insertCell(0);
tr.innerHTML="<td></td><td><input type='text' name='t_xu[]' size='3' /></td><td><input type='text' name='t_name[]' size='8'/></td><td><input type='text' name='t_url[]' /><td><input type='button' value='删除此行' onclick='deltr(this)' /></td>";
});
function deltr(ts){
var tr = $(ts).parent().parent();
tr.remove();
}
function getAll(ts)
{
var ids = $('.ids');
//alert(ids.length);
for(i=0; i<ids.length; i++)
{
if(ts.checked == true)
{
ids[i].checked = true;
} else {
ids[i].checked = false;
}
}
}
<?php $this->endBlock(); $this->registerJs($this->blocks['checkAgree'], \yii\web\View::POS_END);?>
yii2 单页面增删改的更多相关文章
- 权限管理系统之LayUI实现页面增删改查和弹出层交互
由于对LayUI框架不太熟悉,昨天抽空看了下LayUI的文档,今天在网上找了使用LayUI进行增删改查相关内容,自己照葫芦画了个瓢,画瓢部分不是很难,主要是下午遇到了一个弹出层的问题耗时比较久. 同一 ...
- 在ASP.NET MVC4中实现同页面增删改查,无弹出框02,增删改查界面设计
在上一篇"在ASP.NET MVC4中实现同页面增删改查,无弹出框01,Repository的搭建"中,已经搭建好了Repository层,本篇就剩下增删改查的界面了......今 ...
- vue.js带复选框表单的增删改查
近段时间由于公司项目要求,前端开始使用VUE框架进行开发,最近刚开始学习,做了一个表单的增删改查,和大家分享一下. 页面模型代码设计如下 <template> <div id=&qu ...
- django-orm框架表单的增删改查
08.14自我总结 django-orm框架 一.orm基本配置 1.创建django项目 命令行:cmd先去到django创建目录,然后输入django-admin startproject dja ...
- Django框架(八)--单表增删改查,在Python脚本中调用Django环境
一.数据库连接配置 如果连接的是pycharm默认的Sqlite,不用改动,使用默认配置即可 如果连接mysql,需要在配置文件中的setting中进行配置: 将DATABASES={} 更新为 DA ...
- Django框架(九)—— 单表增删改查,在Python脚本中调用Django环境
目录 单表增删改查,在Python脚本中调用Django环境 一.数据库连接配置 二.orm创建表和字段 三.单表增删改查 1.增加数据 2.删除数据 3.修改数据 4.查询数据 四.在Python脚 ...
- YII2.0 数据库增删改查
/*==================== dkhBaseModel 数据库增删改查方法 start ================================*/ //新增一条数据 publ ...
- $Django orm增删改字段、建表 ,单表增删改查,Django请求生命周期
1 orm介绍 ORM是什么 ORM 是 python编程语言后端web框架 Django的核心思想,“Object Relational Mapping”,即对象-关系映射,简称ORM. 一 ...
- 在ASP.NET MVC4中实现同页面增删改查,无弹出框01,Repository的搭建
通常,在同一个页面上实现增删改查,会通过弹出框实现异步的添加和修改,这很好.但有些时候,是不希望在页面上弹出框的,我们可能会想到Knockoutjs,它能以MVVM模式实现同一个页面上的增删改查,再辅 ...
随机推荐
- p标签中的span标签文字垂直居中对齐
<p>轻舞飞扬<span>第一次亲密接触</span></p> p标签的font-size:30px; span标签的font-size:24px; 让 ...
- 在Access中批量调用SQL语句
access的SQL视图一次只能执行一条SQL语句,那么在VBA中调用或许可以简便一些 例如: Public Sub 批量()Dim strsql As String strsql = " ...
- BluetoothAdapter.LeScanCallback 参考文档
BluetoothAdapter.LeScanCallback 参考文档 [翻译自: android开发文档] Class Overview:回调接口被用于传输LE扫描后的结果; 详情参看: ...
- 5月5日 while、do{}while
while .do{}while 一.while的死循环 while (1 == 1)//只要表达式里是true,就是死循环 { //循环内容 } 二.do{}while 不管while是否满足,首先 ...
- struts2视频学习笔记 19-20(手工编写代码实现所有方法和指定方法校验)
课时19 对Action中所有方法进行输入校验 1.手工编写代码实现对action中所有方法输入校验 通过重写validate() 方法实现, validate()方法会校验action中所有与exe ...
- 转载 网页打印时设置A4大小
最近开发项目时遇到了网页打印的问题,这是问题之二,打印宽度设置 在公制长度单位与屏幕分辨率进行换算时,必须用到一个DPI(Dot Per Inch)指标. 经过我仔细的测试,发现了网页打印中,默认采用 ...
- PHP获取指定时间的上个月
主要用strtotime()这个函数 php 获得前一个月的月份 date("Y-m-d",strtotime("last month")); php获得给定时 ...
- 读取DBF文件的部分代码
private void BtnOpenInitial_Click(object sender, EventArgs e) { OpenFileDialog file = new OpenFileDi ...
- 使用nexus搭建maven仓库(本地私服)
我们在使用maven的时候,对于项目所依赖的jar包,maven默认会在中央仓库下载jar包,到本地的磁盘目录(如果没有配置则是用户目录下/.m2/repository文件夹下).如果公司内部搭了一个 ...
- php 大数据量及海量数据处理算法总结
下面的方法是我对海量数据的处理方法进行了一个一般性的总结,当然这些方法可能并不能完全覆盖所有的问题,但是这样的一些方法也基本可以处理绝大多数遇到的问题.下面的一些问题基本直接来源于公司的面试笔试题目, ...