ajax相同,使用ajax发送2个或更多具有相同名称的输入

这篇博客介绍了如何利用JavaScript的serializeAssoc插件高效地管理并序列化HTML表单的所有字段,包括多选框和复选框等。通过这个插件,可以方便地将表单数据转换为关联数组,便于通过AJAX发送到服务器进行处理。

另一种管理表单所有字段的解决方案。

form.html 强>

Document

....

opt1

opt2

opt3

opt4

test content!!

checkbox 1

Apple

Orange

procesa.php 强>

$uno = $_POST['uno'];

var_dump($_POST);

process.js 强>

$(function() {

$( "#myUno" ).submit(function( event ) {

event.preventDefault();//

//we get the data in a single table through our function below

var formData = $('#myUno').serializeAssoc();

console.log(formData);

$.ajax({

type: "POST",

url: "procesa.php",

data: { uno: formData.uno }

})

.done(function( data ) {

$('#result').html(data); //displays the response returned. This is used to debug if necessary

});

});

});

$.fn.serializeAssoc = function() {

var data = {};

$.each( this.serializeArray(), function( key, obj ) {

var a = obj.name.match(/(.*?)\[(.*?)\]/);

if(a !== null)

{

var subName = a[1];

var subKey = a[2];

if( !data[subName] ) data[subName] = [ ];

if( data[subName][subKey] ) {

if( $.isArray( data[subName][subKey] ) ) {

data[subName][subKey].push( obj.value );

} else {

data[subName][subKey] = [ ];

data[subName][subKey].push( obj.value );

}

} else {

data[subName][subKey] = obj.value;

}

} else {

if( data[obj.name] ) {

if( $.isArray( data[obj.name] ) ) {

data[obj.name].push( obj.value );

} else {

data[obj.name] = [ ];

data[obj.name].push( obj.value );

}

} else {

data[obj.name] = obj.value;

}

}

});

return data;

};

我发现此插件$。fn.serializeAssoc效果良好here

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值