快速获取表单多条数据,使用ajax传递给后台

Posted 提子橘子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速获取表单多条数据,使用ajax传递给后台相关的知识,希望对你有一定的参考价值。

当表单中有多条数据需要向后台传递时,一个一个的获取显然是不可取的办法,可以借助表单的serialize()方法获取。

html

<form id="form">
        <table>
            <tr>
                <td>姓名</td>
                <td>
                    <input type="text" name="name" value="张三" />
                </td>
            </tr>
            <tr>
                <td>性别</td>
                <td>
                    <input type="radio" name="sex" value="male" checked /><input type="radio" name="sex" value="female" /></td>
            </tr>
            <tr>
                <td>地区</td>
                <td>
                    <select name="area">
                        <option value="heping" selected>和平区</option>
                        <option value="nankai">南开区</option>
                        <option value="xiqing">西青区</option>
                        <option value="hexi">河西区</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>爱好</td>
                <td>
                    <input type="checkbox" name="hobby[]" value="movie" checked />电影
                    <input type="checkbox" name="hobby[]" value="music" checked/>音乐
                    <input type="checkbox" name="hobby[]" value="basketball" />篮球
                </td>
            </tr>
            <tr>
                <td>个人介绍</td>
                <td>
                    <textarea name="intro">个人介绍一下吧</textarea>
                </td>
            </tr>
            <tr>
                <td></td>
                <td>
                    <input type="button" value="提交" id="submit" />
                </td>
            </tr>
        </table>
</form>

javascript

         $(function(){
                $("#submit").click(function(){
                var form=$("#form");
                var data=getFormData(form);
                $.ajax({

            //注意测试一下传输的data数据是js对象还是json对象格式
                })
            })
            // 获取表单数据
            function getFormData(form){
                var data=form.serialize();
                data=decodeURI(data);
                //name=张三&sex=male&area=heping&hobby[]=movie&hobby[]=music&intro=个人介绍一下吧
                var arr=data.split("&");
                //["name=张三", "sex=male", "area=heping", "hobby[]=movie", "hobby[]=music", "intro=个人介绍一下吧"]
                var item,key,value,newData={};
                for(var i=0;i<arr.length;i++){
                    item=arr[i].split("=");
                    key=item[0];
                    value=item[1];
                    if(key.indexOf("[]")!=-1){
                        key=key.replace("[]","");
                        if(!newData[key]){
                            newData[key]=[];
                        }
                        newData[key].push(value);
                    }else{
                        newData[key]=value;
                    }
                }
                return newData;
                //{name: "张三", sex: "male", area: "heping", hobby: (2) ["movie", "music"], intro: "个人介绍一下吧"}
            }
        }) 

 

      

 

 


以上是关于快速获取表单多条数据,使用ajax传递给后台的主要内容,如果未能解决你的问题,请参考以下文章

asp.net jquery ajax post 后台页面获取不到值 怎么解决?

前台怎么接受后台的数据

easyui表单提交,后台获取不到值

ajax传递给后台数组参数方式

Form表单如何传递List数组对象到后台的解决办

如何使用 laravel php 中的复选框使用 ajax 更新多条记录?