利用ajax异步处理发布状态(发布还是停用)

33 篇文章 0 订阅
17 篇文章 0 订阅
1、如图,改变发布状态

2、jsp代码

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <%@include file="/common/header.jsp"%>
    <title>信息发布管理</title>
    <script type="text/javascript">
  //全选、全反选
    function doSelectAll() {
        // jquery 1.6 前
        //$("input[name=selectedRow]").attr("checked", $("#selAll").is(":checked"));
        //prop jquery 1.6+建议使用
        $("input[name=selectedRow]").prop("checked",
                $("#selAll").is(":checked"));
    }
    
    //添加
      function doAdd(){
          document.forms[0].action="${basePath}nsfw/info_addUI.action";
          document.forms[0].submit();
      }
      //编辑
      function doEdit(id){
          document.forms[0].action="${basePath}nsfw/info_editUI.action?info.infoId=" + id;
          document.forms[0].submit();
      }
    //删除
      function doDelete(id){
          document.forms[0].action="${basePath}nsfw/info_delete.action?info.infoId=" + id;
          document.forms[0].submit();
      }
  //多选删除
      function doDeleteAll(){
          document.forms[0].action="${basePath}nsfw/info_deleteSelected.action";
          document.forms[0].submit();
      }
  //异步发布信息,信息的id及将要改成的信息状态
  function doPublic(infoId,state){
      //1、更新信息状态
      $.ajax({
          url:"${basePath}nsfw/info_publicInfo.action",
            data:{"info.infoId":infoId,"info.state":state},
            type:"post",
            success:function(msg){
                //2、更新状态栏,操作栏的显示值
                if("更新状态成功" == msg){
                    if(state == 1){//说明信息状态已被改成发布,状态栏显示发布,操作栏显示停用
                        $("#show_"+infoId).html("发布");
                        $("#oper_"+infoId).html('<a href="javascript:doPublic(\''+infoId+'\',0)">停用</a>');
                    }else{
                        $("#show_"+infoId).html("停用");
                        $("#oper_"+infoId).html('<a href="javascript:doPublic(\''+infoId+'\',1)">发布</a>');
                    }
                }else{
                  alert("更新信息状态失败!");
                }
            },
            error:function(){
                alert("更新信息状态失败!");
            }
      });
  }
    </script>
</head>
<body class="rightBody">
<form name="form1" action="" method="post">
    <div class="p_d_1">
        <div class="p_d_1_1">
            <div class="content_info">
                <div class="c_crumbs"><div><b></b><strong>信息发布管理</strong></div> </div>
                <div class="search_art">
                    <li>
                        信息标题:<s:textfield name="info.title" cssClass="s_text" id="infoTitle"  cssStyle="width:160px;"/>
                    </li>
                    <li><input type="button" class="s_button" value="搜 索" onclick="doSearch()"/></li>
                    <li style="float:right;">
                        <input type="button" value="新增" class="s_button" onclick="doAdd()"/>&nbsp;
                        <input type="button" value="删除" class="s_button" onclick="doDeleteAll()"/>&nbsp;
                    </li>
                </div>

                <div class="t_list" style="margin:0px; border:0px none;">
                    <table width="100%" border="0">
                        <tr class="t_tit">
                            <td width="30" align="center"><input type="checkbox" id="selAll" onclick="doSelectAll()" /></td>
                            <td align="center">信息标题</td>
                            <td width="120" align="center">信息分类</td>
                            <td width="120" align="center">创建人</td>
                            <td width="140" align="center">创建时间</td>
                            <td width="80" align="center">状态</td>
                            <td width="120" align="center">操作</td>
                        </tr>
                        <s:iterator value="infoList" status="st">
                            <tr <s:if test="#st.odd"> bgcolor="f8f8f8" </s:if> >
                                <td align="center"><input type="checkbox" name="selectedRow" value="<s:property value='infoId'/>"/></td>
                                <td align="center"><s:property value="title"/></td>
                                <td align="center">
                                    <s:property value="#infoTypeMap[type]"/>    
                                </td>
                                <td align="center"><s:property value="creator"/></td>
                                <td align="center"><s:date name="createTime" format="yyyy-MM-dd HH:mm"/></td>
                                <td id="show_<s:property value='infoId'/>" align="center"><s:property value="state==1?'发布':'停用'"/></td>
                                <td align="center">
                                    <span id="oper_<s:property value='infoId'/>">
                                    <s:if test="state==1">
                                        <a href="javascript:doPublic('<s:property value='infoId'/>',0)">停用</a>
                                    </s:if>
                                    <s:else>
                                        <a href="javascript:doPublic('<s:property value='infoId'/>',1)">发布</a>
                                    </s:else>
                                        
                                    
                                    </span>
                                    <a href="javascript:doEdit('<s:property value='infoId'/>')">编辑</a>
                                    <a href="javascript:doDelete('<s:property value='infoId'/>')">删除</a>
                                </td>
                            </tr>
                        </s:iterator>
                    </table>
                </div>
            </div>
        <div class="c_pate" style="margin-top: 5px;">
        <table width="100%" class="pageDown" border="0" cellspacing="0"
            cellpadding="0">
            <tr>
                <td align="right">
                     总共1条记录,当前第 1 页,共 1 页 &nbsp;&nbsp;
                            <a href="#">上一页</a>&nbsp;&nbsp;<a href="#">下一页</a>&nbsp;<input type="text" style="width: 30px;" onkeypress="if(event.keyCode == 13){doGoPage(this.value);}" min="1"
                    max="" value="1" /> &nbsp;&nbsp;
                </td>
            </tr>
        </table>    
        </div>

        </div>
    </div>
</form>

</body>
</html>

3、后台action处理代码

//异步发布信息
    public void publicInfo(){
        try {
            if(info != null){
                //1、更新消息状态
                Info tem = infoService.findObjectById(info.getInfoId());
                tem.setState(info.getState());
                infoService.update(tem);
                
                //2、输出更新结果
                HttpServletResponse response = ServletActionContext.getResponse();
                response.setContentType("text/html");
                ServletOutputStream outputStream = response.getOutputStream();
                outputStream.write("更新状态成功".getBytes("utf-8"));
                outputStream.close();
                
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Ajax异步上传实现文件上传的示例代码: HTML代码: ```html <form id="uploadForm" enctype="multipart/form-data"> <input type="file" name="file"> <button type="submit">上传</button> </form> ``` JavaScript代码: ```javascript // 获取表单元素和文件输入框 var form = document.getElementById('uploadForm'); var fileInput = form.querySelector('input[type="file"]'); // 监听表单提交事件 form.addEventListener('submit', function(event) { // 阻止表单默认提交事件 event.preventDefault(); // 创建FormData对象,将文件内容打包 var formData = new FormData(); formData.append('file', fileInput.files[0]); // 创建XMLHttpRequest对象 var xhr = new XMLHttpRequest(); // 监听上传进度事件 xhr.upload.addEventListener('progress', function(event) { if (event.lengthComputable) { // 计算上传进度百分比 var percent = Math.round((event.loaded / event.total) * 100); console.log('上传进度:' + percent + '%'); } }); // 监听上传完成事件 xhr.addEventListener('load', function(event) { console.log('上传完成'); }); // 监听上传错误事件 xhr.addEventListener('error', function(event) { console.log('上传出错'); }); // 发送Ajax请求,上传文件 xhr.open('POST', '/upload', true); xhr.send(formData); }); ``` 在上面的示例代码中,我们首先获取表单元素和文件输入框,然后监听表单提交事件,在事件处理函数中创建FormData对象,将文件内容打包后发送到服务器端。在创建XMLHttpRequest对象后,我们还监听了上传进度、上传完成和上传错误等事件,以便及时获取上传状态。最后,我们打开POST请求并发送FormData对象,实现了文件的异步上传。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值