Сериализация массива флажков


Давний читатель/первый постер здесь.

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

var createListingString="&features=" + arrayCheckBox;

Теперь я ВСЕ проверяю (и мне это нравится), но каждый раз, когда я пытаюсь опубликовать свой массив с data: $("#create_listing_1").serialize(), я просто получаю "массив " в создаваемой им записи (вместо фактических значений).

Все мои флажки отформатированы:

<input type="checkbox" name="features[]" value="Non-smoking" /> Non-smoking <br />

Я уверен, что это, вероятно, легко, но я усложняю задачу. и Я хотел опубликовать свой первый вопрос. Все здесь оказывают потрясающую помощь, спасибо за это.

Author: Adamjstevenson, 2009-07-29

2 answers

Вероятно, вам сначала нужно преобразовать массив в строку, PHP выдаст вам строку "Массив", если она будет преобразована неявно. Хотя я не уверен, как бы это работало раньше, поэтому приношу извинения, если я совершенно неправильно понял.

$string = implode(', ', $_POST['features']);
 2
Author: Tom Haigh, 2009-07-29 00:05:29

На днях у меня была такая же проблема. Вот как я решил эту проблему:

var values = new Array();
$.each($("input[@name='features[]']:checked"), function() {
    values.push($(this).val());
});
var createListingString = values.join();
 3
Author: Allen Liu, 2009-07-29 07:23:28