修改市场活动及保存更新

  1. 修改市场活动

         用户在市场活动主页面,选择要修改的市场活动,点击"修改"按钮,弹出修改市场活动的模态窗口;

         *每次能且只能修改一条市场活动

         *所有者 动态的

         *表单验证

         *修改成功之后,关闭模态窗口,刷新市场活动列表,保持页号和每页显示条数都不变

         *修改失败,提示信息,模态窗口不关闭,列表也不刷新

 

<button type="button" class="btn btn-default" id="editActivityBtn">
    <span class="glyphicon glyphicon-pencil"></span> 修改
</button>

点击修改 给editActivityBtn添加点击事件

       事件中: 收集参数 获取列表中被选中的checkbox  $("#tBody input[type='checkbox']:checked)

选中个数为0 提示(请选择修改)   选中个数多余1 提示(只能修改一条市场活动)

获取选中checkbox的id 通过id来获取Activity实体类属性值 

ajax 请求把数据 id 发送到

url:'workbench/activity/selectActivityById.do' 
data:{id:id}

编写controller层   根据前端ajax请求传过来的id 调用service层 查询 activity表信息 

  把activity 以json格式返回给 ajax的 success :function(data){}

 @RequestMapping("/workbench/activity/selectActivityById.do")
    @ResponseBody
    public Object  selectActivityById(String id){
        //调用service方法 查询市场活动
        Activity activity= activityService.selectActivityById(id);
        //根据查询结果返回响应信息
        return activity;
    }

编写mapper层  接口和实现类(动态代理)

Activity selectActivityById(String id);
<select id="selectActivityById" resultMap="BaseResultMap" parameterType="string" >
    select
    <include refid="Base_Column_List" />
    from tbl_activity
    where id = #{id,jdbcType=CHAR}
  </select>

编写Service层和实现类

Activity selectActivityById(String id);
 public Activity selectActivityById(String id) {
        return activityMapper.selectActivityById(id);
    }

ajax请求成功 执行success:function(data){}

1.把获取到的data(activity实体类属性)给模态窗口传上 初始值【点击checkbox 修改后 信息初始 显示在修改的模态窗口上  给模态窗口的document元素赋值 data对应的数据值)

2.弹出模态窗口      $("#editActivityModal").modal("show"); 含数据

用户在修改市场活动的模态窗口填写表单,点击"更新"按钮,完成修改市场活动的功能.

 

<button type="button" class="btn btn-primary" id="saveEditActivityBtn">更新</button>
给更新按钮添加事件 

       收集模态窗口document元素的属性值

var id=$("#edit-id").val();
var owner=$("#edit-marketActivityOwner").val();
var name=$.trim($("#edit-marketActivityName").val());
var startDate=$("#edit-startTime").val();
var endDate=$("#edit-endTime").val();

var cost=$.trim($("#edit-cost").val());
var description=$.trim($("#edit-description").val());

根据属性值进行表单验证   

所有者不能为空  名称不能为空  结束日期不能比开始日期小   成本只能为非负整数

     

//表单验证
			if (owner == "") {
				alert("所有者不能为空");
				return;
			}
			if (name == "") {
				alert("名称不能为空");
				return;
			}
			if (startDate != "" && endDate != "") {
				//使用字符串的大小代替日期的大小
				if (endDate < startDate) {
					alert("结束日期不能比开始日期小");
					return;
				}
			}
			var regExp = /^(([1-9]\d*)|0)$/;
			if (!regExp.test(cost)) {
				alert("成本只能为非负整数");
				return;
			}

把数据通过ajax发送到 url:'workbench/activity/saveEditActivity.do'

 data:{id:id,owner:owner,name:name ....}  要更新模态窗口的值 

//发送请求
			$.ajax({
				url:'workbench/activity/saveEditActivity.do',
				data:{
					id:id,
					owner:owner,
					name:name,
					startDate:startDate,
					endDate:endDate,
					cost:cost,
					description:description
				},
				type:'post',
				dataType:'json',

编写Controller层 

         把更新数据activity保存到数据库 把更新结果 int 封装到 ReturnObject 

 @RequestMapping("/workbench/activity/saveEditActivity.do")
    @ResponseBody
    public Object saveEditActivity(Activity activity,HttpSession session){
        //封装参数
        User user = (User) session.getAttribute("user");
        activity.setEditTime(DateUtils.formateDateTime());
        activity.setEditBy(user.getId());
        ReturnObject returnObject=new ReturnObject();
        try{
            int ret=activityService.updateActivity(activity);
            if (ret==1){
                returnObject.setCode("1");
            }else {
                returnObject.setCode("0");
                returnObject.setMessage("系统正忙,更新不上");
            }
        }catch (Exception e){
            e.printStackTrace();
            returnObject.setCode("0");
            returnObject.setMessage("系统正忙,更新不上");
        }
        return returnObject;
    }

更新成功 returnObject.setCode("1")

                returnObject.setMessage("***")

以json格式把returnObject返回给ajax的回调函数 success:function(data){}

更新成功 关闭模态窗口 回到市场页面 调用queryActivityByConditionForPage() 保证当前页和当前条数不变 使用反页插件功能      否则更新失败 显示提示信息 模态窗口不变

success:function (data){
               if(data.code=="1"){
                  //关闭模态窗口
                  $("#editActivityModal").modal("hide");
                  //刷新市场活动列表 保持页号和每页条数都不变
queryActivityByConditionForPage($("#demo_pag1").bs_pagination('getOption', 'currentPage'),
      $("#demo_pag1").bs_pagination('getOption', 'rowsPerPage'));
               }else{
                  //提示信息
                  alert(data.message);
                  $("#editActivityModal").modal("show");
               }
            }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值