在我的页面中,我有一些输入供用户输入值,然后我将获取所有值并将它们发送到服务器。现在我可以得到这个值,我就像下面那样显示它们:
Cylinder: 0.00 Sphere: 0.00 Quantity:1
Cylinder: -0.25 Sphere: 0.00 Quantity:2
Cylinder: -0.50 Sphere: 0.00 Quantity:33
Cylinder: -0.75 Sphere: 0.00 Quantity:2
Cylinder: -1.00 Sphere: 0.00 Quantity:2
Cylinder: -1.25 Sphere: 0.00 Quantity:33
Cylinder: -1.50 Sphere: 0.00 Quantity:4
Cylinder: -1.75 Sphere: 0.00 Quantity:5
Cylinder: -2.00 Sphere: 0.00 Quantity:4
但我不知道如何将他们送到保存行动。我正在使用mvc。
在视图中,我编写了以下JavaScript:
var orderModel={};
$(".bulkOrderNumericInput").each(function (index,element) {
if ($(this).val().length!=0) {
orderModel[i]={Cylinder:$(this).attr('valuex'),Sphere:$(this).attr('valuey'),Quantity:$(this).val()};
i++;
}
});
任何人都可以帮助我吗?
答案 0 :(得分:4)
var orderModel = [];
//loop all the inputs in the page to get values, let's say you give all the inputs a class named'.orderinput'
$('#checkout').click(function(){
$(".orderinput").each(function(){
orderModel.push({Cylinder:$(this).val(),Sphere:blah,Quantity:blah,...);
});
});
//not all values are sotred into the orderModel, the do the post
$.ajax({
url: 'your url',
data:JSON.stringify(orderModel),
type: 'POST',
contentType: 'application/json; charset=utf-8',//this is important!!
success : function(msg) {
//blah..
},
error: function (xhr, ajaxOptions, thrownError) {
//blah...
}
});
答案 1 :(得分:2)
我使用了以下tutorial,我在此SO question中找到了这个答案。虽然这段代码还没有经过测试,但希望它能让你走上正轨。如果您有其他问题,请随时询问。
在javascript中填充orderModel
数组之后,您剩下的就是使用jquery发布该数据。 jquery对象包含ajax
方法(documentation),可以方便地执行此操作。放在javascript代码末尾的下面的代码可以解决这个问题:
$.ajax({
type: 'POST',
traditional: true,
data: { models: orderModel }
});
请注意,此ajax调用将在显示页面的URL上执行。要选择其他URL,请使用以下代码:
$.ajax(URL, { /* same data as above */ });
在服务器端,根据教程,您应该有一个包含models
属性的类定义。该属性将使用您在脚本中收集的javascript数组数据填充。
圣诞快乐!