• jquery序列化form表单使用ajax提交后处理返回的json数据


    这篇文章主要介绍了jquery序列化form表单,使用ajax提交后处理返回的json数据的示例,需要的朋友可以参考下

    1、返回json字符串:

    ** 将一个字符串输出到浏览器 */
        protected void writeJson(String json) {
            PrintWriter pw = null;
            try {
                servletResponse.setContentType("text/plain;charset=UTF-8");
                pw = servletResponse.getWriter();
                pw.write(json);
                pw.flush();
                pw.close();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (pw != null) {
                    pw.close();
                }
            }
        }

    2、通过eval将返回的json字符串转换成json对象:

    $.ajax({
            data:{
                "shipmmsi":shipmmsi,
                "shipname":shipname
            },
            url : "shipbk/findShipMMSIAndName.do",
            async : true,
            type : "POST",
            success : function(data) {
                var ships = eval('(' + data + ')');
                $("#bindShipmmsiDiv table tbody").html("");
                if(ships!=null){
                    if(ships.length){
                        $("#bindShipmmsiDiv").show();
                        var trs="";
                        for(var i=0;i<ships.length;i++){
                            trs+="<tr><td>"+ships[i].mmsi+"</td><td>"+ships[i].vesselName+"</td></tr>";
                        }
                        $("#bindShipmmsiDiv table tbody").append(trs);
                        //给tr注册点击事件
                        $("#bindShipmmsiDiv table tbody tr").click(function(){
                            $(this).addClass('select_tr').siblings().removeClass('select_tr');
                        });
                        $("#bindShipmmsiDiv table tbody tr").dblclick(function(){
                            fillShipMMSIAndName(this);
                            $("#bindShipmmsiDiv").hide();
                        });
                    }
                }
            }
        });

    3、通过jquery的 $("form").serialize() 可以将form表单的数据序列化后提交到后台,因此通过ajax可以操作form表单并处理返回的数据。

    $.ajax({
      url : 'deliveryWarrant/update.do',
      data : $('#myform').serialize(),
      type : "POST",
      success : function(data) {
        var res = eval('(' + data + ')');
        if (res && res.success == true) {   
          alert(res.message);
        location.href="/godownWarrant/findToDeliveryWarrant.do?godownWarrant.code="+$("#myform input[name=godownWarrant\.code]").val();
        } else {
          alert(res.message);
        }
      }
    });

    4、防止乱码的处理方法:

    jsp页面:charset:utf-8
    servlet:utf-8
    filter:utf-8
    在PrintWriter out = response.getWriter()之前加一句
    response.setCharacterEncoding("UTF-8")就可以解决乱码的问题。
    但是得记住一定要放在声明PrintWwrite之前。

    总之,前台界面,java文件,数据库和数据库的连接都有采用统一编码,才不会出现乱码等情况

  • 相关阅读:
    第十八课 顺序存储线性表的分析
    第十七课 StaticList和DynamicList实现
    第十六课 顺序存储结构的抽象实现
    第十五课 线性表的顺序存储结构
    第十四课 线性表的本质和操作
    第十三课 类族结构的进化
    第十二课 顶层父类的创建
    第十一课 异常类构建
    HDU 5773The All-purpose Zero
    HDU 5755 Gambler Bo
  • 原文地址:https://www.cnblogs.com/hclw/p/4413284.html
Copyright © 2020-2023  润新知