效果图:

控制器:

<?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添加行的增删改查的更多相关文章

  1. Yii数据库操作增删改查-[增加\查询\更新\删除 AR模式]

    在Yii的开发中常常需要去使用Yii的增删改查方法,这些方法又可以多次变化和组合,带来全方位的实现对数据库的处理,下面对这些方法做一些简单的整理和梳理,有遗漏或是BUG,敬请指出.灰常感谢!!! 一. ...

  2. yii框架的增删改查

    一.新增 使用model::save()操作进行新增数据 $user= new User; $user->username =$username; $user->password =$pa ...

  3. yii使用createCommand()增删改查

    查询单条数据$sql = "SELECT `name` FROM `table` WHERE id='7'";$users=Yii::$app->db->createC ...

  4. YII 1.0 增删改查

    查询 查询多条返回数据集合 //1.该方法是根据一个条件查询一个集合 $admin=Admin::model()->findAll($condition,$params); $admin=Adm ...

  5. YII进行数据增删改查分析

    关于模型部分參考http://blog.csdn.net/buyingfei8888/article/details/40208729 控制器部分: <?php class GoodsContr ...

  6. Yii框架的增删改查总结分析

    一.查询数据 1.findAll(根据一个条件查询一个集合) $admin=Admin::model()->findAll($condition,$params); $admin=Admin:: ...

  7. Yii 1.1.17 四、属性标签、AR类增删改查、使用上传类与扩展第三方类库

    一.属性标签与规则设置 当进入网站页面,将会读数据库返回信息到视图上.那么,现在定义模型中的属性在视图标签上的显示, 也就是模型属性到前台标签的映射 // 定义模型属性到前台标签的映射 public ...

  8. yii2 增删改查

    自己总结的yii2 advanced 版本的简单的增删改查,希望对大家有所帮助 1.gii生成的actionCreate()方法中 获取插入语句的id $id = $model->attribu ...

  9. YII2生成增删改查

    下载完成后在basic/db.php配置数据库参数. 1.配置虚拟主机后进入YII入口文件 index.php 进行get传值 ?r=gii ,进入创建界面 2.点击 Model Generator下 ...

随机推荐

  1. Selenium2学习-001-Selenium2 WebUI自动化Java开发 Windows 环境配置

    此文主要介绍 Selenium2 WebUI自动化Java开发 Windows 环境配置,供各位亲们参考,若有不足之处,敬请各位大神指正,非常感谢! 所需软件列表如下所示: 所属分类 具体名称 备注 ...

  2. 解决在.ashx文件中判断Session 总是NULL的方法

    实现IHttpHandler接口的同时必须继承IRequiresSessionState接口,才能拿到session public class HttpHandler: IHttpHandler, I ...

  3. SQl中Left Join 、Right Join 、Inner Join与Ful Join

    1 left join 左外连接:查询结果以左表数据为准.假如左表有四条数据,右表有三条数据,则查询结果为四条,且都是左表中有的数据. 例如: EMP表: SAL表: 左连接 左连接,表EMP是主表, ...

  4. Intellij IDEA @Override 标红

    Intellij IDEA 升级到15之后,之前那些@Override 的都标红,提示@Override is not allowed when implement interface method ...

  5. Linux就这个范儿 第18章 这里也是鼓乐笙箫 Linux读写内存数据的三种方式

    Linux就这个范儿 第18章  这里也是鼓乐笙箫  Linux读写内存数据的三种方式 P703 Linux读写内存数据的三种方式 1.read  ,write方式会在用户空间和内核空间不断拷贝数据, ...

  6. Linux权限值问题

    0660:从左向右:第一位:(我不清楚,也没有用过)第二位:当前用户的经权限:6=110(二进制),每一位分别对就 可读,可写,可执行,,6说明当前用户可读可写不可执行第三位:group组用户,6的意 ...

  7. 欢迎加入iOS开发初学者交流群:180080550

    本人现自学iOS开发,希望有志同道合的兄弟姐妹能一起交流学习, 欢迎加入iOS开发初学者交流群:180080550,期待与您一起进步,一起腾飞!

  8. The L1 Median (Weber 1909)

    The L1 Median (Weber 1909) 链接网址 Derived from a transportation cost minimization problem, the L1 medi ...

  9. [ArcEngine]Geotransformation地理变换

    Geotransformation 地理变换 The Abridged Molodensky transformation is a three parameter transformation三参 ...

  10. Vue.2.0.5-表单控件绑定

    基础用法 你可以用 v-model 指令在表单控件元素上创建双向数据绑定.它会根据控件类型自动选取正确的方法来更新元素.尽管有些神奇,但 v-model 本质上不过是语法糖,它负责监听用户的输入事件以 ...