![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| lamik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 15.8.2006 Репутация: нет Всего: нет |
Врядли название темы отражает ее суть... ну что вышло, то вышло.
Проблема: Допустим в MySQL есть записи о пользователях некоторого форума. Допустим, я сгенерировал на страничке форму, в которой каждому пользователю соответствует checkbox с уникальным именем(например id пользователя). Пусть эта форма передает данные в другую страницу типа workform.php метод POST. Вопрос: как в этом самом workform.php обработать значения всех checkbox'ов, не зная заранее ни их имен ни их количества? И можно ли вообще это сделать? |
|||
|
||||
| vasac |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 8 Всего: 36 |
Давай чекбоксам имена вида: arr[<id>], где id — идентификатор пользователя.
Например, <input type="checkbox" value="1" name="arr[10]" /> для пользователя с id=10. Тогда в сценарии будет доступен массив $_POST[ 'arr' ] с индексами, соответствующими id выбранных пользователей. |
|||
|
||||
| lamik |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 15.8.2006 Репутация: нет Всего: нет |
Спасибо за ответ.
Хотя предложенный способ мне не понравился, т.к. для пользователя с id = 1000 будет что-то вроде arr[1000], а массивы с такими индексами кажуться мне чем-то неправильным. Однако сама идея задания массива в качестве параметра для меня нова. Еще раз спасибо. Итого я получил что-то вроде: Код формы:
Код сценария:
Вопрос: 1) это ли имелось ввиду; 2) можно ли как то узнать какие из элементов массива инициализированы, что бы не проходить по всем индексам от 0 до size; |
||||
|
|||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
lamik, для этого можно использовать конструкцию foreach
|
|||
|
||||
| vasac |
|
||||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 8 Всего: 36 |
value в данном случае не имеет смысла. Сделай просто value=1. В итоге должно получится что-то вроде:
Если будет выбрана 2 и 4-я строки, то в сценарии получится массив:
Т.е. с индексами равными id выбранных пользователей (для невыделенных чекбоксов никакие данные из формы в сценарий не отправляются). Дальше перебираешь просто:
Либо получаешь все индексы через array_keys(). |
||||||||
|
|||||||||
| Kirill Baranov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 242 Регистрация: 30.6.2004 Репутация: -2 Всего: -2 |
А почему нельзя сделать:
Тогда массив сам будет создаваться... и будет иметь имя $arr |
|||
|
||||
| vasac |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 8 Всего: 36 |
Kirill Baranov, привиди пример, как это сделать применительно к данному случаю.
|
|||
|
||||
| Vaulter |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 6 Всего: 22 |
vasac,
на странице имеем типа:
обрабатываем типа:
в принципе, и тот и тот метод (users[] , users[<id>]) тут можно использовать различие в обработке. бывают конечно ситуации, где применим тот и только тот или другой метод. ты сам поймешь это |
||||||
|
|||||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |