def input = "inputs/example-input?ProductId=49823&Orders_orderId=27759"
def parsed = input
.split("\\?")[1]
.split("&")
.inject([:]) { m, e ->
def arr = e.split("=")
m[arr[0]] = arr[1]
m
}
def productId = parsed.ProductId
def orderId = parsed.Orders_orderId
assert productId == '49823'
assert orderId == '27759'
我需要再传递一个参数$.ajax({
type: 'POST',
url: '@Url.Action("SetDisplaySettings", "DisplaySettings")',
data:$('#Form1').serialize(),
success: function (result) {
$('#chkIsSystemDefault').prop('checked', false);
if(result=="2"){
showAlertBox("Display Settings updated.");
}
}
});
。我怎么能这样做?
答案 0 :(得分:4)
在当前代码中执行以下操作(将数据添加到序列化表单中): -
data:$('#Form1').serialize()+ '&CountryId=' + CountryId,
或者您可以使用serializeArray
[docs]
var data = $('#myForm').serializeArray();
data.push({name: 'CountryId', value: CountryId});
答案 1 :(得分:2)
您可以传递object
作为您的数据,如下所示:
$.ajax({
type: 'POST',
url: '@Url.Action("SetDisplaySettings", "DisplaySettings")',
data:{
form : $('#Form1').serialize(),
other : ...
},
success: function (result) {
$('#chkIsSystemDefault').prop('checked', false);
if(result=="2")
{
showAlertBox("Display Settings updated.");
}
}
});
答案 2 :(得分:0)
这是伪代码,可帮助您了解如何在AJAX请求中传递多个参数:
var paramsToSend = {};
paramsToSend['form'] = $('#myForm').serializeArray();
paramsToSend['CountryId'] = CountryId;
$.ajax({
...
data: {params:JSON.stringify(paramsToSend)},
...
});
在服务器端,可能是PHP,你可以:
$parameters = json_decode($_POST['params']);
要将它们转换为数组并在$ _POST中包含该数组,您可以:
$_POST = (array) $parameters;
答案 3 :(得分:0)
您可以使用$(...).serialize()
对象代替FormData
:FormData on MDN。
做那样的事情:
var data = new FormData( document.getElementById("#myForm") );
data.append( "CountryId", countryIdValue );
//... in AJAX block:
data: data,
//...