Столкнулся с такой проблемой.
Есть форма. У нее есть чекбоксы - варианты одной переменной.
Передаются массивом - с квадратными скобками.
Т.е. имя переменной param_20[], к примеру.
Все стандартно как в букваре - но странная проблема, IE при обработке запроса методом GET (это так стандартно в движке передается данная форма) заменяет квадратные скобки на символьные коды
и вместо param_20[]=43¶m_20[]=44
получается param_20%5B%5D=42¶m_20%5B%5D=43¶m_20%5B%5D =44
и ничего не работает соответственно.
Кто-нибудь может сталкивался с таким? Как это поправить, обойти?
То, как браузер кодирует символы при передаче вас не должно волновать (URL-encoded strings нормально воспринимаются со стороны пхп и из кода будут видны все те же символы [], вне зависимости от того, как они выглядят в урле).
В коде формы я вижу, что все чекбоксы имеют одинаковое значение name. А эти значения обязаны быть уникальными по стандарту. Поскольку ваша реализация ему не соответствует, браузер вправе вести себя как угодно
Кроме того, символы [] вероятнее всего не валидны в качестве части name.
Как поправить - используйте уникальное name для каждого чекбокса.
[Ответ]
Yandex 10:50 10.05.2011
Constantine, использование скобок - это трюк такой. Сам использовал несколько раз, в том числе и в IE.
Автор не указал версию IE. Большие подозрения на имя переменной - param_20. Стоит попробовать именовать без подчеркивания.
[Ответ]
Constantine 22:39 10.05.2011
Сообщение от Yandex: Constantine, использование скобок - это трюк такой. Сам использовал несколько раз, в том числе и в IE.
Автор не указал версию IE. Большие подозрения на имя переменной - param_20. Стоит попробовать именовать без подчеркивания.
Ну трюки, они такие, могут не работать
Вообще, имхо, проблемы от лени. Пользуйтесь стандартами - меньше вероятность наткнуться на косяк в ИЕ.
Кстати, в чем фишка передачи чекбоксов в качестве булевского массива? Где вероятность, что значения чекбоксов будут отправлены в правильном порядке? Массив-то может быть заполнен в разном порядке. А разбор параметров со скобками происходит не на клиенте, а на стороне пхп, так что это потенциальная проблема.
[Ответ]