<!-- 用前面封装好的show_window(在header.html页面),来显示弹窗 -->
<!-- 修改页面在嵌入的子页面 -->
<!-- 添加不需要带id,但是修改要,要确认改的是哪一个 -->
<a style="text-decoration:none" class="ml-5" onClick="show_window('修改分类',
'index.php?m=admin&c=news_category_add&id=<{$v.id}>')" href="javascript:;" title="编辑">
<i class="Hui-iconfont"></i></a>
<?php
require_once('init.php');
if( !empty($_POST)){
//在这里接收html页面传过来的三个值
$name = $_POST['name'];
$is_show = $_POST['is_show'];
//这个值有默认值,所以判断一下
//传值就使用传过来的值,空值就使用默认值0
$sort = !empty($_POST['sort'])?intval($_POST['sort']):0;
//接收到上面出递过来的值之后,用sql语句将数据写入表中
$sql = "insert into news_category(name, is_show, sort) values ('$name','$is_show', '$sort')";
//使用封装好的操作函数库的查询函数调用它,将上面的数据库语言作为参数传给函数
$ret = execute($sql);
//因为是异步操作,所以查询完了之后不能直接跳转页面,需要进行判定
//然后在news_category_add.html页面接收值
if($ret !== false){
echo 1;
}else{
echo 0;
}
}else{
//修改功能:
//通过GET方法获取news_category.html带过来的id(这个ID在搜索框中)
$id = $_GET['id'];
//逻辑:如果获取到的ID大于0,表示有id,那么就是修改
//然后用数据库查询函数查出这个id
//然后用smarty把这个查到的值传递给
if($id > 0){
$row = get_row("select * from news_category where id=$id limit 1");
}
$smarty->assign('row', $row);
$smarty->display($tpl_name);
}
?>
<div class="row cl">
<label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>名称:</label>
<div class="formControls col-xs-8 col-sm-9">
<input type="text" class="input-text" value="<{$row.name}>" name="name">
</div>
</div>
<div class="row cl">
<label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>排序:</label>
<div class="formControls col-xs-8 col-sm-9">
<input type="text" class="input-text" value="<{$row.sort}>" name="sort">
</div>
</div>
如果 is_show=1, 那么显示 checked
如果is_show =0,那么隐藏checked
<div class="row cl">
<label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>显示:</label>
<div class="formControls col-xs-8 col-sm-9 skin-minimal">
<div class="radio-box">
<input name="is_show" type="radio" id="show-1" value="1" <{if $row.is_show == 1}>checked <{/if}>>
<label for="show-1">显示</label>
</div>
<div class="radio-box">
<input type="radio" id="show-2" name="is_show" value="0" <{if $row.is_show == 0}>checked <{/if}>>
<label for="show-2">隐藏</label>
</div>
</div>
<div class="row cl">
<div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
<input type="hidden" name="id" value="<{$row.id}>">
<input class="btn btn-primary radius" type="submit" value=" 提交 ">
</div>
</div>
success: function(data){
if(data == 1){
//time:2000这个函数弹出的弹窗默认不会自动关闭
//设置时间就是自动关闭提示信息的时间
layer.msg('操作成功!',{icon:1,time:2000});
//视频中这里不显示弹窗提示,因为程序执行时间太短,所以需要加定时器
//但是自己的是显示的
//这个函数表示:前面是要做的事,后面设置时间为2秒
//这个函数表示2秒之后执行函数里的内容
//setTimeout(function(){},2000);
setTimeout(function(){
//如果添加成功,在提示成功之后,关闭当前窗口
//并刷新父级窗口,显示新添加信息
//逻辑:程序自身无法杀自身,只能通过其他程序
//所以这里要先找到他的父级,再刷新父级,再通过父级关闭它
//之所以刷新在中间,而不是先关闭再刷新
//是因为关闭了它自己就没有子级父级的概念了
var index = parent.layer.getFrameIndex(window.name);
parent.location.reload();
parent.layer.close(index);
},2000);
}else{
layer.msg('操作失败!',{icon:2,time:2000});// 2000表示提示信息留存时间 icon是一个 X 字体图标
}
},
error: function(XmlHttpRequest, textStatus, errorThrown){
layer.msg('error!',{icon:1,time:1000});
}
image.png
<a style="text-decoration:none"
class="ml-5" onClick="article_del(this,'10001')"
href="javascript:;" title="删除"><i class="Hui-iconfont"></i></a>
</td>
</tr>
<{/foreach}>
</tbody>
</table>
</div>
</div>
<!--请在下方写此页面业务相关的脚本-->
<script type="text/javascript">
/*资讯-删除功能*/
function article_del(obj,id){
layer.confirm('确认要删除吗?',function(index){
$.ajax({
type: 'POST',
url: '',
dataType: 'json',
success: function(data){
$(obj).parents("tr").remove();
layer.msg('已删除!',{icon:1,time:1000});
},
error:function(data) {
console.log(data.msg);
},
});
});
}
10001是id号
1.
onClick="article_del(this,'<{$v.id}>')"
,id要修改成模板传过来的id
2.下面模板写好了删除方法,只需要传值和建立删除的页面就可以了
3.url就是新建的删除的页面url
<a style="text-decoration:none" class="ml-5" onClick="article_del(this,'<{$v.id}>')" href="javascript:;" title="删除"><i class="Hui-iconfont"></i></a>
</td>
</tr>
<{/foreach}>
</tbody>
</table>
</div>
</div>
<!--请在下方写此页面业务相关的脚本-->
<script type="text/javascript">
/*资讯-删除功能*/
function article_del(obj,id){
layer.confirm('确认要删除吗?',function(index){
$.ajax({
type: 'POST',
url: 'index.php?m=admin&c=news_category_del',
//data:('id', id)等价于下面的 data:(id, id)
//这是一个键值对,前面的id是键,后面的是值
data:(id, id),
dataType: 'json',
success: function(data){
$(obj).parents("tr").remove();
layer.msg('已删除!',{icon:1,time:1000});
},
error:function(data) {
console.log(data.msg);
},
});
});
}
<?php
//删除功能 -- 还是先包含初始化文件
require_once('init.php');
//news_category.html页面用的是POST方式发送信息,所以这里也用post接收
$id = $_POST['id'];
echo $id;
?>
$id = $_POST['id'];这里存的就是这个id
<?php
//删除功能 -- 还是先包含初始化文件
require_once('init.php');
//news_category.html页面用的是POST方式发送信息,所以这里也用post接收
$id = $_POST['id'];
//此时,被删除项的id已经拿到,接下来就是写一个sql语句,将他从数据库删掉
$sql = "delete from news_category where id='$id'";
//在删掉之后,用一个if判断它到底删除成功还是失败
//使用封装好的操作函数库的查询函数调用它,将上面的数据库语言作为参数传给函数
$ret = execute($sql);
//因为是异步操作,所以查询完了之后不能直接跳转页面,需要进行判定
//然后在news_category_add.html页面接收值
if($ret !== false){
echo 1;
}else{
echo 0;
}
?>
</span> <span class="r" id="total">共有数据:<{$count}> 条</span>
</span> <span class="r" >共有数据:<strong id="total"> <{$count}> </strong>条</span>
var total = $.trim($("#total").text());
var total = parseInt($.trim($("#total").text()));
total = total - 1;
/*资讯-删除功能*/
function article_del(obj,id){
layer.confirm('确认要删除吗?',function(index){
$.ajax({
type: 'POST',
url: 'index.php?m=admin&c=news_category_del',
//data:('id', id)等价于下面的 data:(id, id)
//这是一个键值对,前面的id是键,后面的是值
data:{id:id},
dataType: 'json',
success: function(data){
if(data == 1){
//这个text不给值就是获取值,给值就是修改值
//trim 取消空白,以防出现空白问题以致出错
//这个总量原本是一个数字,但是经过js获取之后,会变成一个字符串
//用parseInt把他转成一个数字
var total = parseInt($.trim($("#total").text()));
total = total - 1;
$(obj).parents("tr").remove();
$("#total").text(total);
layer.msg('删除成功!',{icon:1,time:2000});
}else{
layer.msg('已删除!',{icon:2,time:2000});
}
},
error:function(data) {
console.log(data.msg);
},
});
});
}
image.png
//修改功能:
//通过GET方法获取news_category.html带过来的id(这个ID在搜索框中)
$id = $_GET['id'];
//逻辑:如果获取到的ID大于0,表示有id,那么就是修改
//然后用数据库查询函数查出这个id
//然后用smarty把这个查到的值传递给
//else是做添加时默认选项功能
//else后面是把嵌入的news_category_add.html页面的显示和排序的默认值0和1设置默认值
//这样在添加的时候,就只需要填写名称了,有需要才填显示隐藏和排序
if($id > 0){
$row = get_row("select * from news_category where id=$id limit 1");
}else{
$row = ['is_show'=>1, 'sort'=>0];
}
$smarty->assign('row', $row);
$smarty->display($tpl_name);
image.png
方法名在模板中已经有了:
news_category.html:
onclick="datadel()"
但这只是一个方法名还不能用,这个功能需要代码实现
删除功能先在news_category.html页面写一个函数
还是交给news_category_del.php页面处理
把要删除项的ID传到news_category_del.php页面去处理
<td><input type="checkbox" value="<{$v.id}>" name="del[]"></td>
先定义一个变量id为空
然后需要知道用户到底点了哪几项:
下面这个函数的意思是选中名字为del[]的input标签,并且要含有checked属性(当勾选她的时候,他就含有checked,这个之前已经写了)
这个
然后遍历
$("input[name='del[]']:checked").each();
蓝色
绿:内容
红:标题
→
⇄ ⇅ ⇆ ⇇ ⇈ ⇉ ⇊ ⇋ ⇌
网友评论