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

被折叠的 条评论
为什么被折叠?



