我喜欢如何通过ajax动态地以json格式发送json格式的表单数据? 例如,我在JQ编写类似的东西:
$.post("test.php", { func: "getNameAndTime" },
function(data){
alert(data.name); // John
console.log(data.time); // 2pm
}, "json");
这很好,但在实时应用程序中经常需要发送大量表单数据,用户可以动态更改字段,所以我不知道将发送多少func1,func2,func3甚至func []。 q是如何动态地执行此操作,在AJAX的旧世界中,我可以通过实现表单并发送到服务器来完成它。 提前完成。
答案 0 :(得分:5)
是的我可以将所有数据发送到服务器,无论如何它都能正常运行, 例如:
$(function() { // on document load
$('#email_form').submit(function() { // set onsubmit event to the form
var data = $('#email_form').serialize(); // serialize all the data in the form
$.ajax({
url: 'testJson.php', // php script to retern json encoded string
data: data, // serialized data to send on server
dataType:'json', // set recieving type - JSON in case of a question
type:'POST', // set sending HTTP Request type
async:false,
success: function(data) { // callback method for further manipulations
for (key in data.email) {
alert(data.email[key]);
}
},
error: function(data) { // if error occured
}
});
return false;
});
});
答案 1 :(得分:3)
可以为AJAX请求构建动态数据,但显然您需要知道检索该动态数据的逻辑。你没有在你的问题中描述这一点,所以在下面的例子中我假设它基于表单中.user_input
字段的数量(可以是2,或10,或其他)。然后,数据由字段名称+字段值组成。
关键是要显示动态的数据收集,这就是全部。
var ajax_data = {};
$('.user_input').each(function() {
ajax_data[$(this).attr('name')] = $(this).val();
});
$.post('some/url.php', ajax_ata); //etc