JavaScript POST запрос - PullRequest
       2

JavaScript POST запрос

0 голосов
/ 19 сентября 2010

Как можно включить следующую функцию JavaScript, отправляющую запрос POST, для получения параметра productID не в виде одной строковой переменной, а в виде коллекции productID?

, т. Е.получить на выходе строку типа:

"productId = 126504 & productId = 126505 & productId = 126506 & productId = 126507 & productId = 126508"

 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
 <script type="text/javascript">
 function addToCart(productId, returnUrl) {
    var form = $(document.createElement('form'))
    .attr('action', '/products/addtocart')
    .attr('method', 'post')
    .append(
        $(document.createElement('input'))
            .attr('type', 'hidden')
            .attr('name', 'productId')
            .val(productId)
    )
    .append(
        $(document.createElement('input'))
            .attr('type', 'hidden')
            .attr('name', 'returnUrl')
            .val(returnUrl)
    );
    $('body').append(form);
    form.submit();
}
</script>

Редактировать:

Просто для большей ясности: при вызове этой функции с параметром 126504 функция выводит productId = 126504 .Как передать 126504,126505,126506,126507,126508 для нескольких productID, чтобы получить выходные данные функции 126504 & productId = 126505 & productId = 126506 & productId = 126507 & productId = 126508 ?

Я вызываю функцию из Silverlightприложение:

 HtmlPage.Window.Invoke("addToCart", "126504", "http://localhost:10930/Products");

Ответы [ 2 ]

3 голосов
/ 20 сентября 2010

Добавьте несколько элементов ввода с одинаковым именем в одну и ту же форму, и вы получите именно то, что ищете.

0 голосов
/ 20 сентября 2010

Извините, если мой вопрос был немного неясным.Вот вариант функции, мне удалось начать работать так, как я хотел:

    function addToCart3(path, params, method) {
    method = method || "post"; 
    var form = document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", path);

    for (var i = 0, l = params.length; i < l; i++ ) {
        var hiddenField = document.createElement("input");
        hiddenField.setAttribute("type", "hidden");
        hiddenField.setAttribute("name", "productId");
        hiddenField.setAttribute("value", params[i]);
        form.appendChild(hiddenField);
    }
    document.body.appendChild(form); 
    form.submit();
}

Если передать этой функции массив строк, сервер получит данные в соответствии с требованиями

string[] arrstrpostdata = new string[] { "126504", "126505", "126506", "126507", "126508", "126509" };
HtmlPage.Window.Invoke("addToCart3", "http://localhost:10930/Cart/AddCollToCart", arrstrpostdata);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...