如何在ajax中传递一个参数?

时间:2017-08-02 07:46:57

标签: jquery ajax

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."); } } }); 。我怎么能这样做?

4 个答案:

答案 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()对象代替FormDataFormData on MDN。 做那样的事情:

var data = new FormData( document.getElementById("#myForm") );
data.append( "CountryId", countryIdValue );
//... in AJAX block:
data: data,
//...
相关问题