本文实例讲述了Yii针对添加行的增删改查操作。分享给大家供大家参考,具体如下:
效果图:
控制器:
<?php
namespace backendcontrollers;
use Yii;
use yiiwebController;
use backendmodelshan;
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程序设计有所帮助。