Как отправить значение нескольких полей с помощью JQuery Post - PullRequest
1 голос
/ 01 ноября 2009

Я знаю, как отправить методом jquery post $ .post ("test.php", {name: "John", время: "2pm"});

но что если мое имя поля формы будет массивом

<input type=text name="n1[]" id="n1[]" value='12345"> 
<input type=text name="n1[]" id="n1[]" value="14454">

как отправить эти 2 значения поля отправить в URL методом jquery post?

Ответы [ 2 ]

5 голосов
/ 01 ноября 2009

Вы можете передать массив как значение в объекте:

{name: 'John', 'nl[]': ['12345', '14454']}

(Это задокументировано на ajax , но также работает для post .)

Однако, возможно, лучше использовать метод serialize формы для создания строки данных, тогда вы можете позволить jQuery позаботиться о том, чтобы все получилось правильно. jQuery (и HTML в целом) не заботится о наличии квадратных скобок в конце имени элемента управления поля. Это всего лишь хак, используемый, чтобы сказать PHP, что он должен ожидать нескольких значений.

Примечание nl[] - неверный идентификатор. Помимо проблем с проверкой / совместимостью, вам также будет сложно писать селекторы, поскольку квадратные скобки в $('#nl[]') означают нечто иное. В этом случае вы можете использовать обратную косую черту, хотя в некоторых местах синтаксический анализ с помощью regex-hack jQuery прерывает подобные действия.

Плюс, на странице не может быть двух элементов с одинаковым id. id имеет функцию идентификации одного элемента на странице с простым буквенно-цифровым * именем для целей сценариев и таблиц стилей; он не является заменой или альтернативой атрибуту name полей формы, который является именем элемента управления для отправки на сервер.

(*: плюс .-_:, хотя вы обычно не хотите использовать :, а . также раздражает написание селекторов.)

[Наконец-то простая опечатка: ваш первый value также неверно процитирован.]

0 голосов
/ 01 ноября 2009
var fields = $(":input").serializeArray();    
$.post("test.php",fields);

См. Документацию по serializeArray () и селектору input .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...