hao-1234-1234

案例:广告的增删改查

步骤:

1引用 js

2 填写 input type=" file" 的id  

3 填写 url

4后台保存地址

5前台成功后的处理

 

广告添加页

<div class="modal-header no-padding">
	<div class="table-header">
		<i class="icon-lock"></i>
		<button type="button" class="close" data-dismiss="modal">×</button>
		添加广告
	</div>
</div>

<div class="modal-body overflow-visible">
	<label class="control-label pull-left" style="padding-right:20px;">类别</label>
	<select id="class_id"   name="class_id" class="left">
		<option value="">不限</option>
		<volist name="advertise_class" id="vo">
			<eq name="vo.id" value="$map.class_id">
				<option value="{$vo.id}" selected >{$vo.name}</option>
				<else />
				<option value="{$vo.id}" >{$vo.name}</option>
			</eq>
		</volist>
	</select>
</div>

<div class="modal-body overflow-visible">
	<div class="control-group">
		<label class="control-label" for="name">广告名称</label>
		<div class="controls">
			<input type="text" required="required" id="name" name="name" placeholder="广告名称"/>
		</div>
	</div>

	<div class="control-group">
		<label class="control-label" for="url">广告地址</label>
		<div class="controls">
			<input type="text" required="required" id="url" name="url"
				   placeholder="注意添加http://"/>
		</div>
	</div>
	<div class="control-group">
		<label class="control-label" for="Pic"  >广告图片</label>
		<div class="controls">
			<input type="file"  name="Pic" id="Pic"  style="display: none"   onchange="uploadFile();" />
			<label for="Pic">
			<img  id="image"  class="image" width="15%" height="15%" style="width: auto; height:80px;" src="__PUBLIC__/HomeStyle/images/photo.png"  >
			</label>
			<!--<input type="file"  id="image"  style="display: none"   onchange="uploadFile(\'{:U(\'Admin/Advertisement/image\')}\', \'imageCom\',\'logo_success\');" />-->
			<!--<label for="image">-->
			<!--<img  class="logo_success" width="13%" height="13%"  src="__PUBLIC__/HomeStyle/images/photo.png"  >-->
			<!--</label>-->

			<!--<input id="file0"  type="file" size="10" accept="image/*"  placeholder="点击上传"    onchange="uploadFile(\'{:U(\'Admin/Advertisement/image\')}\', \'file0\',\'advertise_pic\');" />-->
			<!--  <!–用for属性绑定file控件–>   -->
			<!--  <label for="file0">        -->
			     <!--<img id="pic" class="advertise_pic"  width="13%" height="13%" src="__PUBLIC__/HomeStyle/images/photo.png" alt=" " />  -->
			<!--  </label>   -->
		</div>
	</div>

	<div class="control-group">
		<label class="control-label" for="sort">排序</label>
		<div class="controls">
			<input type="text" required="required" id="sort" name="sort"
				   placeholder="数字越大越靠前"/>
		</div>
	</div>

	<div class="control-group">
		<label class="control-label" for="note">备注</label>
		<div class="controls" >
			<textarea type="text" style="height: 50px" cols="20" rows="10"  required="required" id="note" name="note" />
		</div>
	</div>
</div>

<div class="modal-footer">
	<button data-dismiss="modal" class="btn btn-small">
		<i class="icon-remove"></i>
		取消
	</button>
	<button type="button" class="btn btn-small btn-primary" onclick="$.doAdd(\'{:U(\'Admin/Advertisement/doAdd\')}\', this);">
		<i class="icon-ok"></i>确认
	</button>
</div>
<input id="pic_hidden" value="">
<script src="__PUBLIC__/HomeStyle/js/ajaxfileupload.js"></script>
<script type="text/javascript">
	//图片上传
	function uploadFile() {
		$.ajaxFileUpload({
			url: "{:U(\'Admin/Advertisement/upload\')}",  //请求控制器地址
			secureuri: false,   
			fileElementId: \'Pic\',  //input type=“file”标签的id
			dataType: \'json\',  //返回值类型
			success: function (data)  //服务器成功响应处理函数
			{
				if (data.code ==1) {
					$(\'#pic_hidden\').val(data.msg);
					data.msg = data.msg + \'?\' + parseInt(Math.random() * 1000); //添加随机数
					$(\'.image\').attr(\'src\', data.msg);
				} else {
					alert(data.msg);
				}
			},
		})
	}




		jQuery(function($){
			$.extend({
				doAdd : function(url, obj)
				{
					var obj = $(obj).parents(\'form\');

					$.ajax({
						url : url,
						type : \'get\',
						data : {
								class_id:$(\'#class_id\').val(),
								name:$(\'#name\').val(),
								url:$(\'#url\').val(),
							    pic:$(\'#pic_hidden\').val(),
								sort:$(\'#sort\').val(),
								note:$(\'#note\').val()
						},
						success : function(res)
						{
							$.lagou.alert(res.msg, res.code, 2);
							$.lagou.formHide();
							location.reload();
						}
					});
				}
			});
		});




</script>

  

后台:

<?php
/**广告管理
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/5/3
 * Time: 17:33
 */

namespace Admin\Controller;

class AdvertisementController extends BaseController {

    protected $AdvertisementObj = null;
    protected $Advertise_class=null;

    public function __construct()
    {
        parent::__construct();
        $this->AdvertisementObj = M(\'Advertisement\');
        $this->Advertise_class=M(\'Advertise_class\');
    }

    /**
     *
     */
    public function index()
    {
        //获取页面中所有name标签的内容
        $map=I();
        //移除$map中所有可以转为false的值,如:false,0,‘0’,arrary(),null,\'\',
       // $a=array_filter($map);
         $a=$map;
        //名称
        if(!empty($a[\'name\'])){
            $where[\'am.name\']=array(\'LIKE\',\'%\'.$a[\'name\'].\'%\');  //联表查询有两个name时,搜索条件要带表名。
        }
        //审核状态
        //empty 若变量已存在、非空字符串或者非零,则返回 false 值;反之返回 true。
        //换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。
        //if  0代表假  非0代表真
        if($a[\'state\']!=""){
            $where[\'state\']=array(\'EQ\',$a[\'state\']);
        }
        //类别
        if(!empty($a[\'class_id\'])){
            $where[\'class_id\']=array(\'EQ\',$a[\'class_id\']);
        }
        //var_dump($where);
        //分页
        $total=$this->AdvertisementObj->where($where)->count();//获取总页数
        $Page= new \Think\Pages($total,10);//显示10个页码
        $Page->setConfig(\'first\',\'首页\');
        $Page->setConfig(\'prev\',\'上一页\');
        $Page->setConfig(\'next\',\'下一页\');
        $Page->setConfig(\'last\',\'尾页\');
        $showPage = $Page->show();
        //搜索结果
        // $data=$this-> companyModel->where($where)->page(I(\'get.p\',1),20)->order(\'create_time desc\')->join(\'as com left join lg_city_category as city on com.city=city.id left join lg_trade as tr on com.trade=tr.id left join lg_basic_config_category as bc on com.stage=bc.id\')->field(\'com.id as id,com.name as name,com.trade,city.name as city,tr.name as trade,bc.name as stage,com.state as state\')-> select();
        $data=$this->AdvertisementObj->where($where)->page(I(\'get.p\',1),10)->order(\'sort desc\')->join(\'as am left join lg_advertise_class as ac on am.class_id=ac.id\')->field(\'am.id,am.name,am.create_time,am.sort,am.state,ac.name as class_name\') ->select();//get.p 表示页码,如果不存在则赋值1,每页20行。
        //var_dump($data);
        $advertise_category=$this->Advertise_class->order(\'sort desc\')->select();
        //上一次搜索条件
        $this->assign(\'map\',$a);
        $this->assign(\'advertise_class\',$advertise_category);
        //分页
        $this->assign(\'page\',$showPage);
        //列表
        $this->assign(\'data\', $data);
        $this->display();

    }

    /**
     * 添加
     */
    public function add()
    {
        $advertise_category=$this->Advertise_class->order(\'sort desc\')->select();
        $this->assign(\'advertise_class\',$advertise_category);
        $this->display();
    }

    /**
     * 执行添加
     */
    public function doAdd()
    {
        $data=I();
        $data[\'create_time\'] = time();
        $data[\'state\'] = 1;
        $rs = $this->AdvertisementObj->add($data);
        if($rs){
            $msg[\'code\'] = 1;
            $msg[\'msg\'] = \'添加成功\';
        }else{
            $msg[\'code\'] = 0;
            $msg[\'msg\'] = \'添加失败\';
        }
        $this->ajaxReturn($msg);
    }


    //图片处理
    public function upload()
    {
        $upload = new \Think\Upload();// 实例化上传类
        $upload->maxSize   =    3145728 ;// 设置附件上传大小
        $upload->exts      =     array(\'jpg\', \'gif\', \'png\', \'jpeg\');// 设置附件上传类型
        $upload->savePath  =     \'./Advertisement/Pic/\'; // 设置图片上传目录,默认在 Uploads文件下。
        $upload->saveName =     time().\'_\'.mt_rand(); //生成随机名称,如果想实现替换可以定位用户id: (string)session(\'user.id\');
        $upload->saveExt = \'jpeg\';
        $upload->subName = ""; 
        $upload->replace = true;
        $upload->hash = false;
        $info = $upload->upload();
        if(!$info){
            $msg[\'code\']=0;
            $msg[\'msg\']=$upload->getError();
        }else{
            $msg[\'code\']=1;
            $msg[\'msg\']= \'/Uploads/Advertisement/Pic/\'.$info[\'Pic\'][\'savename\'];  //想前台返回地址和新名称
        }
        $this->ajaxReturn($msg);
    }
    /**
     * 修改
     */
    public function edit()
    {
        $id = I(\'get.id\');
        $info = $this->AdvertisementObj->where(\'id=\'.$id)->find();
        $advertise_category=$this->Advertise_class->order(\'sort desc\')->select();
        $this->assign(\'advertise_class\',$advertise_category);
        $this->assign(\'info\', $info);
        $this->display();
    }

    /**
     * 修改
     */
    public function doEdit()
    {
            $data = I();
            $rs = $this->AdvertisementObj->save($data);
            if($rs===false){
                $msg[\'code\'] = 0;
                $msg[\'msg\'] = \'修改失败\';
            }else{
                $msg[\'code\'] = 1;
                $msg[\'msg\'] = \'修改成功\';
            }
            $this->ajaxReturn($msg);

    }

    /*
     * 删除
     */
    public function delete()
    {
        $id = I(\'get.id\');
        $rs=$this->AdvertisementObj->where(\'id=\'.$id)->delete();
        if ($rs==0||$rs===false) {
            $msg[\'code\'] = 0;
            $msg[\'msg\'] = \'删除失败\';
        } else {
            $msg[\'code\'] = 1;
            $msg[\'msg\'] = \'删除成功\';
        }
        $this->ajaxReturn($msg);
    }

    //审核通过
    public function adopt(){
//        $this->ajaxReturn($_GET["id"]);
//        return;
        $id = I(\'get.id\');
        $data[\'state\']=1;
        $res = $this->AdvertisementObj->where(\'id=\'.$id)->save($data);
        if($res===false){
            $msg[\'code\'] = 0;
            $msg[\'msg\'] = \'操作失败\';
        }else{
            $msg[\'code\'] = 1;
            $msg[\'msg\'] = \'操作成功\';
        }
        $this->ajaxReturn($msg);
    }

    //审核拒绝
    public function refuse(){
        $id = I(\'get.id\');
        $data[\'state\']=2;
        $res = $this->AdvertisementObj->where(\'id=\'.$id)->save($data);
        if($res===false){
            $msg[\'code\'] = 0;
            $msg[\'msg\'] = \'操作失败\';
        }else{
            $msg[\'code\'] = 1;
            $msg[\'msg\'] = \'操作成功\';
        }
        $this->ajaxReturn($msg);
    }



}

  

修改页

<div class="modal-header no-padding">
	<div class="table-header">
		<i class="icon-lock"></i>
		<button type="button" class="close" data-dismiss="modal">×</button>
		添加广告
	</div>
</div>

<div class="modal-body overflow-visible">
	<label class="control-label pull-left" style="padding:0px 10px;">类别</label>
	<select id="class_id"   name="class_id" class="left">
		<option value="">不限</option>
		<volist name="advertise_class" id="vo">
			<eq name="vo.id" value="$info.class_id">
				<option  value="{$vo.id}" selected >{$vo.name}</option>
				<else />
				<option value="{$vo.id}" >{$vo.name}</option>
			</eq>
		</volist>
	</select>
</div>

<div class="modal-body overflow-visible">
	<div class="control-group">
		<label class="control-label" for="name">广告名称</label>
		<div class="controls">
			<input type="text" value="{$info.name}" required="required" id="name" name="name" placeholder="广告名称"/>
		</div>
	</div>

	<div class="control-group">
		<label class="control-label" for="url">广告地址</label>
		<div class="controls">
			<input type="text" required="required" id="url" name="url" value="{$info.url}"
				   placeholder="注意添加http://"/>
		</div>
	</div>
	<div class="control-group">
		<label class="control-label" for="Pic" >广告图片</label>
		<div class="controls">
			<input type="file"  name="Pic" id="Pic"  style="display: none"   onchange="uploadFile();" />
			<label for="Pic">
				<if condition="$info.pic eq \'\'">
					<img  class="image" width="15%" height="15%" style="width: auto; height:80px;" src="__PUBLIC__/HomeStyle/images/photo.png"  >
					<else/>
						<img  id="image"  class="image" width="15%" height="15%" style="width: auto; height:80px;" src="{$info.pic}"  >
				</if>
			</label>
		</div>
	</div>

	<div class="control-group">
		<label class="control-label" for="sort">排序</label>
		<div class="controls">
			<input type="text" required="required" id="sort" name="sort" value="{$info.sort}"
				   placeholder="数字越大越靠前"/>
		</div>
	</div>

	<div class="control-group">
		<label class="control-label" for="note">备注</label>
		<div class="controls" >
			<textarea type="text" style="height: 50px" cols="20" rows="10"  required="required" id="note"  name="note" >{$info.note}</textarea>
		</div>
	</div>
</div>

<div class="modal-footer">
	<button data-dismiss="modal" class="btn btn-small">
		<i class="icon-remove"></i>
		取消
	</button>
	<button type="button" class="btn btn-small btn-primary" onclick="doEdit();">
		<i class="icon-ok"></i>确认
	</button>
</div>
<input id="pic_hidden" value="">
<script src="__PUBLIC__/HomeStyle/js/ajaxfileupload.js"></script>
<script type="text/javascript">
	//图片上传
	function uploadFile() {
		$.ajaxFileUpload({
			url: "{:U(\'Admin/Advertisement/upload\')}",
			secureuri: false,
			fileElementId: \'Pic\',
			dataType: \'json\',
			success: function (data)  //服务器成功响应处理函数
			{
				if (data.code ==1) {
					$(\'#pic_hidden\').val(data.msg);
					data.msg = data.msg + \'?\' + parseInt(Math.random() * 1000);
					$(\'.image\').attr(\'src\', data.msg);
				} else {
					alert(data.msg);
				}
			},
		})
	}

			function  doEdit()
			{
				var adv_class_id = $("#class_id").find("option:selected").attr("value");
				$.ajax({
					url : "{:U(\'Admin/Advertisement/doEdit\')}",
					type : \'post\',
					data : {
						id:{$info.id},
						class_id:adv_class_id,
						name:$(\'#name\').val(),
						url:$(\'#url\').val(),
						pic:$(\'#pic_hidden\').val(),
						sort:$(\'#sort\').val(),
						note:$(\'#note\').val()
					},
					success : function(res)
					{
						//alert(res);
						$.lagou.alert(res.msg, res.code, 2);
						$.lagou.formHide();
						location.reload();
					}
				});
			}



</script>

  

 

列表页

<extend name="Public/base" />


{// 导航}
<block name="breadcrumb">
<li class="active">广告管理</li>
</block>

{// 左侧菜单}
<block name="sidebar">
	<include file="Public/sidebar" nav="advertise"/>
</block>

{// 主体}
<block name="main">
<div class="row-fluid">

	<h3 class="header blue lighter smaller">
		<form action="{:U(\'Admin/Advertisement/index\')}" method="get">
			<div class="dataTables_wrapper">
				<div class="grid_conent" id="m_search_div">
					<div class="grid" style="width:28%">
						<label class="control-label pull-left">广告名称:</label>
						<input name="name" value="{$map.name}" type="text" id="search_name" class="pull-left" />
					</div>
					<div class="grid" style="width: 28%;"  >
						<label class="control-label pull-left">审核状态:</label>
						<select name="state" class="pull-left">
							<option value="">不限</option>
							<option value="0" <?php if($map[\'state\']==\'0\'):?> selected="selected"<?php endif;?> >待审核</option>
							<option value="1" <?php if($map[\'state\']==\'1\'):?>selected="selected" <?php endif;?> >已通过</option>
							<option value="2" <?php if($map[\'state\']==\'2\'):?>selected="selected"<?php endif;?> >已拒绝</option>
						</select>

					</div>
					<div class="grid" style="width:auto;">
						<label class="control-label pull-left" style="padding-left:26px;">类别:</label>
						<select name="class_id" class="left">
							<option value="">不限</option>
							<volist name="advertise_class" id="vo">
								<eq name="vo.id" value="$map.class_id">
									<option value="{$vo.id}" selected >{$vo.name}</option>
									<else />
									<option value="{$vo.id}" >{$vo.name}</option>
								</eq>
							</volist>
						</select>
					</div>
					<div class="add_link" style=" width: auto; float: right;">
						<button class="btn btn-primary btn-small" onclick="$.lagou.formShow(\'{:U(\'Admin/Advertisement/add\')}\');" type="button"><i class="icon-plus"></i>添加广告</button>
					</div>
					<div style="width:auto; float: right; padding-top:1px; "><button type="submit" class="btn btn-primary btn-small pull-left" id="search_submit"><i ></i>搜索</button></div>

				</div>
			</div>
		</form>
	</h3>
	<div class="table-header">广告列表</div>
	<div class="dataTables_wrapper" role="grid">
	<table id="data_table" class="table table-striped table-bordered table-hover" style="margin-bottom:0px;">
		<thead>
			<tr>
				<th>广告名称</th>
				<th>创建时间</th>
				<th>排序</th>
				<th>类别</th>
				<th>审核状态</th>
				<th>审核</th>
				<th>操作</th>
			</tr>
		</thead>
		<tbody>
			<?php foreach ($data as $key => $value): ?>
				<tr>
					<td>{$value.name}</td>
					<td>{$value.create_time|date="Y-m-d H:i", ###}</td>
					<td>{$value.sort}</td>
					<td>{$value.class_name}</td>
					<td><eq name="value.state" value="0"><i class="waitting">等待审核</i><else/><eq name="value.state" value="1">已通过<else/> <eq name="value.state" value="2"><i class="red">已拒绝</i><else/> </eq> </eq></eq></td>
					<td>
						<div class="hidden-phone visible-desktop action-buttons">
							<a href="javascript:;" onclick="$.adopt(\'{:U(\'Admin/Advertisement/adopt\', array(\'id\'=>$value[\'id\']))}\');" class="green"  >
								<i>通过</i>
							</a>
							<a href="javascript:;" onclick="$.refuse(\'{:U(\'Admin/Advertisement/refuse\', array(\'id\'=>$value[\'id\']))}\');" class="red" >
								<i>拒绝</i>
							</a>
						</div>
					</td>
					<td>
						<div class="hidden-phone visible-desktop action-buttons">
							<a href="javascript:;" onclick="$.lagou.formShow(\'{:U(\'Admin/Advertisement/edit\', array(\'id\'=>$value[\'id\']))}\');" class="blue tooltip-info no-hover-underline" data-rel="tooltip" data-original-title="编辑资料">
								<i class="icon-pencil bigger-130"></i>
							</a>
							<a href="javascript:;" onclick="$.del(\'{:U(\'Admin/Advertisement/delete\', array(\'id\'=>$value[\'id\']))}\');" class="red tooltip-error no-hover-underline" data-rel="tooltip" data-original-title="删除"><i class="icon-trash bigger-130"></i></a>
						</div>
					</td>
				</tr>
			<?php endforeach ?>
		</tbody>
	</table>
		<!-- 分页 -->
		<div class="row-fluid">
			<div class="page">{$page}</div>
		</div>
      </div>
	</div>

</block>

{// js}
<block name="js">


	<script type="text/javascript">

			jQuery(function($) {
				// 这就是全选按钮
				$(\'table th input:checkbox\').on(\'click\' , function(){
					var that = this;
					$(this).closest(\'table\').find(\'tr > td:first-child input:checkbox\')
					.each(function(){
						this.checked = that.checked;
						$(this).closest(\'tr\').toggleClass(\'selected\');
					});	
				});
				
				$.extend({

					action : function(url, obj)
					{
						var obj = $(obj).parents(\'form\');

						$.ajax({
							url : url,
							type : \'get\',
							data : obj.serialize(),
							success : function(res)
							{
								$.lagou.alert(res.msg, res.code, 2);
								$.lagou.formHide();
								location.reload();
							}
						});
					},

					del : function(url)
					{

						$.lagou.confirm(\'确认删除吗?\', function(res){
							if (res) {
								$.get(url, function(response){
									//alert(response);
									$.lagou.alert(response.msg, response.code, 2);
									location.reload();
								});
							}
						});
					},
					//通过
					adopt : function(url)
					{
						$.lagou.confirm(\'确定要通过吗?\', function(res){
							if (res) {
								$.get(url, function(response){
									$.lagou.alert(response.msg, response.code, 2);
									location.reload();
								});
							}
						});
					},
					//拒绝
					refuse : function(url)
					{
						$.lagou.confirm(\'确定拒绝吗?\', function(res){
							if (res) {
								$.get(url, function(response){
									$.lagou.alert(response.msg, response.code, 2);
									location.reload();
								});
							}
						});
					}


				});
			})
		</script>
</block>

  

分类:

技术点:

相关文章: