Jquery Post многомерный массив через $.Аякс
Я пытаюсь разместить вызов ajax, как если бы это был следующий элемент формы:
<input type="text" name="data[BlogPost][title]" />
Но мне не везет вот мой источник:
$.ajax({
url: "/add/",
type: "POST",
data: ( /* what do I do here */),
success: function(msg){
alert(msg);
}
});
Я пробовал вложенные объекты, но это только генерирует ответ сервера, как:
массив
'data' = > string ' [object Object]' (length=15)
Что никому не приносит пользы!
Какие-нибудь мысли?
3 ответов:
Просто поместите имя поля в кавычки, также обратите внимание, что я использую объектный литерал для параметра данных
{}против Паренсов, которые были у вас в вашем вопросе:$.ajax({ url: "/add/", type: "POST", data: { 'data[BlogPost][title]':'My New Title'} , success: function(msg){ alert(msg); } });
Вы пробовали сериализовать () ?
Я не уверен на 100%, что это работает на многомерных массивах, но это стоит попробовать.$.ajax({ url: "/add/", type: "POST", data: $('#myForm').serialize(), success: function(msg){ alert(msg); } });
Мое предположение,
[..]квадратные скобки не являются допустимыми символами для имен входных элементов?Поправьте меня, если я ошибаюсь.
Обновление: Упс, хорошо, значит, я ошибаюсь. Оставлю это здесь в любом случае как "учебную" информацию. Для таких, как я:)
Comments