Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Передача массива параметров методом POST

7.2K
06 января 2009 года
polaroid
94 / / 05.07.2008
Здравствуйте. Проблема такова:
пишу php скрипт для редактирования MySQL баз. Накидал интерфейс формы отправки: данные таблицы выводятся построчно. Допустим в табице 4 столбца, форма выглядит так:

Код:
<form method="POST">
<table>
<tr>
<td><input type="checkbox" name="chbox[]" value=$primarykey></td>
<td><input type="text" name="rows[]" value="Значение столбца 1"></td>
<td><input type="text" name="rows[]" value="Значение столбца 2"></td>
<td><input type="text" name="rows[]" value="Значение столбца 3"></td>
<td><input type="text" name="rows[]" value="Значение столбца 4"></td>
</tr>
<tr>
...
</tr>
...
<input type="submit">
</form>


Так вот, дело в том, что мне нужно обрабатывать в скрипте только те строки, которые помечены чекбоксом. Поскольку у меня тут все инпуты имеют имя rows[], соответственно при приеме данных, я получаю тупо массив всех инпутов на форме (т.е. огромное множ-во выведенных строк).
Прошу вас, подкиньте идейку, как реализовать прием и обработку данных. Тут еще проблема в том, что мне необходимо передавать значения $primarykey, поскольку в mysql запросе они будут использоваться после WHERE. Т.е. фактически для идентификации строки
44K
06 января 2009 года
франсуа
8 / / 06.01.2009
ну так ещебы у тебя у всех 1 и тоже имя =)
7.2K
06 января 2009 года
polaroid
94 / / 05.07.2008
Товарищ набивает посты)))). Вопрос не решен, продолжаем обсуждение
12
06 января 2009 года
alekciy
3.0K / / 13.12.2005
Цитата: polaroid
Товарищ набивает посты)))). Вопрос не решен, продолжаем обсуждение


У тебя изначально кривая реализация. Поэтому вопрос и не решен. Советую на опыте понять, что браузер посылает в PHP интерпретатор при включенных/выключеных чекбоксах. Когда ты это осознаешь станет понятно, как нужно было поступить.

244
07 января 2009 года
UAS
2.0K / / 19.07.2006
Значит. Вот примерно накидал в общем виде для вашего примера в частности.

1) Даешь идентификатор этим полям в виде числа и поля таблицы, т.е. что-то типа:
Код:
<tr>
<td><input type="checkbox" name="chbox[1]" value=$primarykey></td>
<td><input type="text" name="row1_name[1]" value="Значение столбца 1"></td>
<td><input type="text" name="row2_name[1]" value="Значение столбца 2"></td>
<td><input type="text" name="row3_name[1]" value="Значение столбца 3"></td>
<td><input type="text" name="row4_name[1]" value="Значение столбца 4"></td>
</tr>
<tr>
<td><input type="checkbox" name="chbox[2]" value=$primarykey></td>
<td><input type="text" name="row1_name[2]" value="Значение столбца 1"></td>
<td><input type="text" name="row2_name[2]" value="Значение столбца 2"></td>
<td><input type="text" name="row3_name[2]" value="Значение столбца 3"></td>
<td><input type="text" name="row4_name[2]" value="Значение столбца 4"></td>
</tr>
...


2) Не хранить значение primarykey в чекбоксе. Не для того он предназначен. Т.е. обычно их в hidden поля кидают, хотя, вообще, разницы в данном примере нет куда его пихать.

3) В скрипте идет проверка, примерно такая:
 
Код:
$i = 1;
while( isset($_POST["row1_name"][$i]) ) {
    if( isset($_POST["chbox"][$i]) ) {
        // галочка поставлена => обрабатываем как там вам надо
    }
    $i++;
}


4) Учим xHTML (для общего развития, так как писать надо правильно))

ЗЫ: не скажу, что это прекрасный код, но вполне подойдет для разъяснения
7.2K
07 января 2009 года
polaroid
94 / / 05.07.2008
Огромное спасибо за помощь! Правда, я уже сам реализовал, но предложенный вами вариант мне кажется более логичным, чем мой. Еще раз спасибо и с Рождеством))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог