PDA

Просмотр полной версии : checkbox'ы и массив $_POST[]


0x22b
07.06.2008, 13:38
Вообщем доделываю админку Инет магазина(простенького), есть такая тема, что:
Выводится таблица, в ней в каждой строке идет такая инфа. Чекбокс, ФИО и прочая лабуда, заказ, сумма. И так по каждому заказу. Внизу кнопка "выделенное удалить". При генерации таблицы, каждому чекбоксу, имя и значение является id заказа. Так вот когда я отмечаю нужное и нажимаю удалить, в скрипт методом пост передается все отмеченное. Наверно вопрос звучит глупо, но я не могу найти ему решение. Как мне из массива $_POST[], выдрать все значение в какойнибудь заранее объявленый массив? подскажите народ пожалуйста. Админку нужно до понедельника закончить, это моя дипломная работа.. Заранее всем благодарен.

gordonfreeman
07.06.2008, 13:46
Вначале скрипта проверяй нажата ли кнопка "Удалить", если да то выполняй необходимые действия для удаления.

NOmeR1
07.06.2008, 13:46
Вобщем вместо названия переменной из $_POST можно использовать массив:

<input type="checkbox" name="delete[]" value="ID">
И теперь $_POST['delete'] - это массив, в котором в качестве значений используются те ID, которые ты вписал в value у инпута. Короче говоря, вот простой пример использования:

foreach($_POST['delete'] as $ID) {
if(mysql_query("DELETE FROM `table` WHERE `id` = '".intval($ID)."';")) {
echo 'ID: '.$ID.' удалена';
} else {
echo 'ID: '.$ID.' не удалена';
}
}

0x22b
07.06.2008, 14:11
to gordonfreeman либо ты меня не так понял, либо сам не в теме..
to NOmeR1 спс, кажется понял о чем ты мне хочеш поведать, попробую.. +

gordonfreeman
07.06.2008, 14:19
Я до сих пор не понимаю в чем сложность была

0x22b
07.06.2008, 14:40
to gordonfreeman сравни свой пост, и пост NOmeR1.. видиш разницу, человек прочитал все от начала до конца и понял суть, толково подсказал.. А ты мне заявлеш: определи нажатие на кнопку и удаляй что нужно.. Когда сталкнешся с такой проблемой тогда пойсмеш в чем фишка была..

Arrest
07.06.2008, 14:40
NOmeR1
Зачем так БД трогать? Use IN:

$in = "(".implode(", ", $_POST['delete']).")";

if(mysql_query("DELETE FROM `table` WHERE `id` IN $in;")){
echo "Удалены ID $in";// что-то такое
}else{
echo "Ошибка при выполнении SQL-запроса.";
}