2013-08-11 3 views
0
var data = { 
    'ids': $("input[name='ids\\[\\]']").map(function(){return $(this).val();}), 
    'price': $("input[name='price\\[\\]']").map(function(){return $(this).val();}) 
}; 

alert(data); 


$.post("api/update_prices.php", {'data[]': data}, function (responseText) { 
    alert(responseText); 
}); 

или ...Отправить массив (объект) с JQuery POST

$.post("api/update_prices.php", data, function (responseText) { 
    alert(responseText); 
}); 

Внимательный данные вывода объекта (объект). Я смотрел Stackoverflow, и он все еще не работает. alert (responseText) никогда не вызывается.

+0

Ваш второй фрагмент должен работать. Изолируйте код и попытайтесь найти проблему. Если вы используете safari/chrome/firefox, используйте console.log() для проверки объектов с помощью консоли javascript. –

ответ

1

ли вы попробуйте указать тип содержимого, как "application/json" в API JQuery Ajax и затем вызвать

JSON.stringify (данных);

также откройте консоль веб-разработчиков в браузере Google Chrome и перейдите на вкладку «Сеть», чтобы узнать, что происходит во время вызова Ajax. то есть какие данные отправляются и какие данные принимаются в Ajax Call.

0

Вы попробовали serialize? Он суммирует все данные формы. Кажется, это то, что вы пытаетесь сделать с объектом data.

$.post("api/update_prices.php", $(':input').serialize(), function (responseText) { 
    alert(responseText); 
}); 

http://api.jquery.com/serialize/

0

Ваша функция $ .post должна быть такой:

$.post("api/update_prices.php", {'data[]': JSON.stringify(data)}, function (responseText) { 
    alert(responseText); 
}); 

Обратите внимание на JSON.stringify.

Смежные вопросы