Yii针对添加行的增删改查操作示例


Posted in PHP onOctober 18, 2016

本文实例讲述了Yii针对添加行的增删改查操作。分享给大家供大家参考,具体如下:

效果图:

Yii针对添加行的增删改查操作示例

控制器:

<?php
namespace backend\controllers;
use Yii;
use yii\web\Controller;
use backend\models\Zhan;
class IndexController extends Controller
{
  //显示页面
  public function actionIndex()
  {
    $index=new Zhan();
    //接受值
     if($_POST)
     {
      $a=Yii::$app->db;
      //判断是否有删除ids
      if(Yii::$app->request->post('ids'))
      {
        $ids=Yii::$app->request->post('ids');
        $str='';
        for($i=0;$i<count($ids);$i++)
        {
         if($a->createCommand()->delete('zhan',['id'=>$ids[$i]])->execute())
         {
           $str++;
         }
        }
        if($str!='')
        {
          echo '<script>alert("删除成功");location.href="index.php?r=index/index"</script>';
        }
      }
      else
      {
         //判断是否有id传值
         $cid=Yii::$app->request->post('cid');
         $xu_ids=Yii::$app->request->post('xu_id');
         //print_r($id);die;
         //添加行的数据
         $names=Yii::$app->request->post('zhan_name');
         $ulrs=Yii::$app->request->post('url');
         //遍历数组
         foreach($names as $k=>$v)
         {
           if(!empty($cid[$k]))
           {
            $c_id=$cid[$k];
            //echo $c_id;die;
            $url=$ulrs[$k];
            $xu_id=$xu_ids[$k];
            $name=$v;
            $res=$a->createCommand()->update("zhan",['zhan_name'=>$name,'url'=>$url,'xu_id'=>$xu_id],"id=$c_id")->execute();
            //数据可能没被修改,只有成功一条就改变标记的值
            if($res)
            {
             echo '<script>alert("修改成功");location.href="index.php?r=index/index"</script>';
            }
           }
           else
           {
            $url=$ulrs[$k];
            $xu_id=$xu_ids[$k];
            $name=$v;
            $res=$a->createCommand()->insert("zhan",['xu_id'=>$xu_id,'zhan_name'=>$name,'url'=>$url])->execute();
            //数据可能没被修改,只有成功一条就改变v标记的值
            if($res)
            {
              echo '<script>alert("添加成功");location.href="index.php?r=index/index"</script>';
            }
           }
         }
      }
     }
     else
     {
      //查询数据
      $models=Zhan::find()->orderBy(['xu_id'=>'asc'])->asArray()->all();
      //var_dump($models);
      return $this->renderPartial("show",['models'=>$models]);
     }
  }
}
?>

视图层:

<center>
<form action="index.php?r=index/index" method="post">
<input name="_csrf" type="hidden" id="_csrf" value="<?= Yii::$app->request->csrfToken ?>">
<table>
<tr>
<td>ID</td>
  <td>显示顺序</td>
  <td>站点名称</td>
  <td>站点URL</td>
</tr>
<?php foreach ($models as $key => $v) {?>
<tr>
<input type="hidden" name="cid[]" value="<?php echo $v['id']; ?>" />
<td><input type="checkbox" name="ids[]" class='ids' value="<?= $v['id'] ?>"></td>
<td><input type="text" name="xu_id[]" value="<?= $v['xu_id'];?>"></td>
<td><input type="text" name ='zhan_name[]'value="<?= $v['zhan_name'];?>"></td>
<td><input type="text" name="url[]" value="<?= $v['url'];?>"></td>
</tr>
<?php }?>
<tr>
 <td><a href="javascript:void(0)" onclick="add(this);">+添加友情链接</a></td>
 <td><input type="checkbox" onclick="jian(this);">删除?</td>
</tr>
 <tr>
  <td><input type="submit" value="提交" ></td>
 </tr>
</table>
</form>
</center>
<script src="style/jquery.js"></script>
<script>
//添加一行
function add(ts)
{
  var tr=$(ts).parent().parent();
  var newtr='<tr><td></td><td><input type="text" name="xu_id[]"></td><td><input type="text" name="zhan_name[]"></td><td><input type="text" name="url[]"></td><td><input type="button" value="删除该行" onclick="del(this);"></td></td></tr><br />';
  tr.after(newtr);
}
//删除当前行
function del(ts)
{
  $(ts).parent().parent().remove();
}
//删除所有
function jian(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>
</head>

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
几种显示数据的方法的比较
Oct 09 PHP
discuz安全提问算法
Jun 06 PHP
php magic_quotes_gpc的一点认识与分析
Aug 18 PHP
php中http与https跨域共享session的解决方法
Dec 20 PHP
php删除文本文件中重复行的方法
Apr 28 PHP
php获取指定范围内最接近数的方法
Jun 02 PHP
浅谈PHP的反射API
Feb 26 PHP
php 调用ffmpeg获取视频信息的简单实现
Apr 03 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
Sep 26 PHP
php实现获取近几日、月时间示例
Jul 06 PHP
Yii框架安装简明教程
May 15 PHP
Memcached介绍及php-memcache扩展安装
Apr 01 PHP
Yii遍历行下每列数据的方法
Oct 17 #PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
Oct 17 #PHP
php实现跨域提交form表单的方法【2种方法】
Oct 17 #PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
Oct 17 #PHP
详解PHP原生DOM对象操作XML的方法
Oct 17 #PHP
php排序算法实例分析
Oct 17 #PHP
基于thinkPHP框架实现留言板的方法
Oct 17 #PHP
You might like
php 保留字列表
2012/10/04 PHP
php GUID生成函数和类
2014/03/10 PHP
在PHP中运行Linux命令并启动SSH服务的例子
2014/06/12 PHP
WordPress中限制非管理员用户在文章后只能评论一次
2015/12/31 PHP
ucenter中词语过滤原理分析
2016/07/13 PHP
PHP实现的支付宝支付功能示例
2019/03/26 PHP
Laravel Reponse响应客户端示例详解
2020/09/03 PHP
js 删除数组的几种方法小结
2014/02/21 Javascript
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
2014/05/02 Javascript
js获取会话框prompt的返回值的方法
2015/01/10 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
2015/07/29 Javascript
使用jQuery制作基础的Web图片轮播效果
2016/04/22 Javascript
详解JavaScript设计模式开发中的桥接模式使用
2016/05/18 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
用js将long型数据转换成date型或datetime型的实例
2017/07/03 Javascript
深入探究AngularJs之$scope对象(作用域)
2017/07/20 Javascript
关于Vue.nextTick()的正确使用方法浅析
2017/08/25 Javascript
原生JS控制多个滚动条同步跟随滚动效果
2017/12/22 Javascript
微信小程序分享功能onShareAppMessage(options)用法分析
2019/04/24 Javascript
详解为什么Vue中不要用index作为key(diff算法)
2020/04/04 Javascript
[04:30]显微镜下的DOTA2第五期——拉比克
2013/09/26 DOTA
[01:14]DOTA2 7.22版本新增神杖效果展示(智力英雄篇)
2019/05/29 DOTA
[45:18]完美世界DOTA2联赛循环赛 PXG vs IO 第二场 11.06
2020/11/09 DOTA
Python编程入门之Hello World的三种实现方式
2015/11/13 Python
Python后台管理员管理前台会员信息的讲解
2019/01/28 Python
Python 限制线程的最大数量的方法(Semaphore)
2019/02/22 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
2019/08/09 Python
CSS3提交意见输入框样式代码
2014/10/30 HTML / CSS
中职应届生会计求职信
2013/10/23 职场文书
2016新年感言
2015/08/03 职场文书
医院感染管理制度
2015/08/05 职场文书
离婚财产分割协议书
2015/08/11 职场文书
Node与Python 双向通信的实现代码
2021/07/16 Javascript