checkbox'ы и массив $_POST[]

Discussion in 'PHP' started by 0x22b, 7 Jun 2008.

  1. 0x22b

    0x22b Elder - Старейшина

    Joined:
    1 Dec 2007
    Messages:
    114
    Likes Received:
    32
    Reputations:
    9
    Вообщем доделываю админку Инет магазина(простенького), есть такая тема, что:
    Выводится таблица, в ней в каждой строке идет такая инфа. Чекбокс, ФИО и прочая лабуда, заказ, сумма. И так по каждому заказу. Внизу кнопка "выделенное удалить". При генерации таблицы, каждому чекбоксу, имя и значение является id заказа. Так вот когда я отмечаю нужное и нажимаю удалить, в скрипт методом пост передается все отмеченное. Наверно вопрос звучит глупо, но я не могу найти ему решение. Как мне из массива $_POST[], выдрать все значение в какойнибудь заранее объявленый массив? подскажите народ пожалуйста. Админку нужно до понедельника закончить, это моя дипломная работа.. Заранее всем благодарен.
     
    #1 0x22b, 7 Jun 2008
    Last edited: 7 Jun 2008
  2. gordonfreeman

    gordonfreeman Elder - Старейшина

    Joined:
    29 Jan 2006
    Messages:
    29
    Likes Received:
    6
    Reputations:
    -1
    Вначале скрипта проверяй нажата ли кнопка "Удалить", если да то выполняй необходимые действия для удаления.
     
  3. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Вобщем вместо названия переменной из $_POST можно использовать массив:
    Code:
    <input type="checkbox" name="[B]delete[][/B]" value="[color=red][B]ID[/B][/color]">
    И теперь $_POST['delete'] - это массив, в котором в качестве значений используются те ID, которые ты вписал в value у инпута. Короче говоря, вот простой пример использования:
    Code:
    foreach($_POST['delete'] as $ID) {
    	if(mysql_query("DELETE FROM `table` WHERE `id` = '".intval($ID)."';")) {
    		echo 'ID: '.$ID.' удалена';
    	} else {
    		echo 'ID: '.$ID.' не удалена';
    	}
    }
     
    #3 NOmeR1, 7 Jun 2008
    Last edited: 7 Jun 2008
    1 person likes this.
  4. 0x22b

    0x22b Elder - Старейшина

    Joined:
    1 Dec 2007
    Messages:
    114
    Likes Received:
    32
    Reputations:
    9
    to gordonfreeman либо ты меня не так понял, либо сам не в теме..
    to NOmeR1 спс, кажется понял о чем ты мне хочеш поведать, попробую.. +
     
  5. gordonfreeman

    gordonfreeman Elder - Старейшина

    Joined:
    29 Jan 2006
    Messages:
    29
    Likes Received:
    6
    Reputations:
    -1
    Я до сих пор не понимаю в чем сложность была
     
  6. 0x22b

    0x22b Elder - Старейшина

    Joined:
    1 Dec 2007
    Messages:
    114
    Likes Received:
    32
    Reputations:
    9
    to gordonfreeman сравни свой пост, и пост NOmeR1.. видиш разницу, человек прочитал все от начала до конца и понял суть, толково подсказал.. А ты мне заявлеш: определи нажатие на кнопку и удаляй что нужно.. Когда сталкнешся с такой проблемой тогда пойсмеш в чем фишка была..
     
  7. Arrest

    Arrest New Member

    Joined:
    6 Jun 2008
    Messages:
    5
    Likes Received:
    3
    Reputations:
    3
    NOmeR1
    Зачем так БД трогать? Use IN:
    PHP:
    $in "(".implode(", "$_POST['delete']).")";

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