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

5年以前  |  阅读数:490 次  |  编程语言:PHP 

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

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

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例