ФорумПрограммированиеPHP для идиотов → как обратиться к checkbox

как обратиться к checkbox

  • web-bee

    Сообщения: 119 Репутация: N Группа: Кто попало

    Spritz 18 июня 2010 г. 12:21, спустя 7 минут 8 секунд

    1-ая страница с тегами:
       <td><input type="checkbox" name="checkbox[]" value="<?php print $rows['itemid']; ?>"></td>
      <td><?php print $row['itemnumber']; ?></td>
      <td><?php print $row['name']; ?></td>
      <td><?php print $row['price']; ?></td>
      <th><form action="deleteitem.php"><input name="deleteitem" type="submit" value="X"></th></form>

    2-ая с кодом:

    if (!empty($_POST['deleteitem']))
    {

    /*
    Помогите, пожалуйста, дописать
    ВОТ ЭТО:
    если checkbox отмечен
    $del_id = значение поля value из формы checkbox
    выполнить запрос:
    */

    $sql = "DELETE FROM items WHERE itemid='$del_id'";
    $result = mysql_query($sql);
    }

  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 18 июня 2010 г. 11:31, спустя 23 часа 10 минут 9 секунд

    как-то непонятно и нелогично. Почему checkbox не попадает в форму?

    это просто delete или массовое удаление сразу нескольких элементов?
  • md5

    Сообщения: 11949 Репутация: N Группа: в ухо

    Spritz 18 июня 2010 г. 11:35, спустя 3 минуты 21 секунду

    чекбоксы в форме должны быть

    примерно так олжно быть:
    <form>
    <tr>
    .. чекбокс
    </tr>
    <tr>
    .. чекбокс
    </tr>
    <tr>
    .. чекбокс
    </tr>
    <tr>КНОКА УДАЛИТЬ</tr>
    </form>


    а на пхп:
    foreach ($_POST['checkbox'] as $del_id) {
    .. удаляем
    }
    все умрут, а я изумруд
  • web-bee

    Сообщения: 119 Репутация: N Группа: Кто попало

    Spritz 18 июня 2010 г. 11:41, спустя 6 минут 2 секунды

    Абырвалг, потому что напрочь запуталась в трёх скриптах
    На самом деле у меня checkbox и submit в разных скриптах
    ( в скрипт с формой, где submit инклюдится скрипт с  checkbox),
    а обработка формы в третьем скрипте..

    как это разрулить?
    Спустя 77 сек.
    это просто delete или массовое удаление сразу нескольких элементов?

    как пользователь выберет, может быть и массовое, и единичное..
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 18 июня 2010 г. 11:47, спустя 6 минут 54 секунды

    псевдокод (на самом деле это Twig)
    <form>
    {% for entry in entries %}
    <input type="checkbox" name="mass_action[]" value="[: entry.id :]">
    {% endfor%}
    </form>


    phpinfo(32); // на обработчике, что б понять что пришло в скрипт
  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 18 июня 2010 г. 11:52, спустя 4 минуты 26 секунд

    Для начала, я не понял чекбоксов на странице произвольное количество или раз и навсегда определенное?
  • web-bee

    Сообщения: 119 Репутация: N Группа: Кто попало

    Spritz 18 июня 2010 г. 12:00, спустя 8 минут 27 секунд

    а на пхп:
    PHP
    foreach ($_POST['checkbox'] as $del_id) {
    .. удаляем
    }


    md5, а как с value быть?
    Нужно чтобы в базе записи по itemid удалялись.

    Абырвалг,
    псевдокод (на самом деле это Twig)

    Я ещё до такой лаконичности недоросла ))

  • web-bee

    Сообщения: 119 Репутация: N Группа: Кто попало

    Spritz 18 июня 2010 г. 12:08, спустя 7 минут 10 секунд

    AlexB, В том-то и дело, что количество чекбоксов - переменчивое..

  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 18 июня 2010 г. 12:09, спустя 1 минуту 46 секунд

    Тогда, md5 ответил на вопрос.
  • md5

    Сообщения: 11949 Репутация: N Группа: в ухо

    Spritz 18 июня 2010 г. 12:14, спустя 4 минуты 37 секунд

    я просто так или мимо кассы не отвечаю :)
    все умрут, а я изумруд
  • web-bee

    Сообщения: 119 Репутация: N Группа: Кто попало

    Spritz 20 июня 2010 г. 1:50, спустя 1 день 13 часов 36 минут

    не удаляется помеченная запись..
    вот код с кнопкой, куда инклудится код с чекбоксом:
      <th><form action="deleteitem.php" method="post"><input name="deleteitem" type="submit" value="X"></th>
    <?php include ('table.php'); ?></form>


    вот кусок с самим чекбоксом - table.php:
    $login=$_SESSION['login'];
    $result=mysql_query("SELECT * FROM users WHERE login='$login'");
    $row = mysql_fetch_array($result, MYSQL_ASSOC);
    $id=$row['id'];

    $result=mysql_query("SELECT * FROM items WHERE userid='$id'");
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
    {
    ?>
    <tr>
    <td><input type="checkbox" name="checkbox[]" value="<?php print $rows['itemid']; ?>"></td>
    <td><?php print $row['itemnumber']; ?></td>
    <td><?php print $row['name']; ?></td>


    а это кусок deleteitem.php, где скрипт удаления записи:
    if (!empty($_POST['deleteitem'])){
    foreach ($_POST['checkbox'] as $del_id) {

    $sql = "DELETE FROM items WHERE itemid='$del_id'";
    $result = mysql_query($sql);

    if($result){
    //echo "<meta http-equiv=\"refresh\" content=\"0;URL= myaccount.php\">";
    }
    }
    }


    как я понимаю в скрипт deleteitem.php не передаётся itemid товаров, которые должны быть удалены из базы..
    запрос выполняется, возвращает $result=1, но в базе товары, которые выделяла всё равно сохранились
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 20 июня 2010 г. 2:35, спустя 45 минут 11 секунд

    $sql = "DELETE FROM items WHERE itemid='$del_id'";
    echo "{$sql}\n" // что выдаст?
    $result = mysql_query($sql);

    if($result){
    exit("Affected: " . mysql_affected_rows()); // что выдаст?
    //echo "<meta http-equiv=\"refresh\" content=\"0;URL= myaccount.php\">";
    }
    База случаем не на InnoDB? нет внешних ключей?
    Work, buy, consume, die
  • web-bee

    Сообщения: 119 Репутация: N Группа: Кто попало

    Spritz 20 июня 2010 г. 2:43, спустя 7 минут 52 секунды

    да, есть
  • web-bee

    Сообщения: 119 Репутация: N Группа: Кто попало

    Spritz 20 июня 2010 г. 2:48, спустя 5 минут 8 секунд

    ВотЪ:

    echo "{$sql}\n" // что выдаст?

    DELETE FROM items WHERE itemid=''

    exit("Affected: " . mysql_affected_rows()); // что выдаст?

    Affected: 0
  • web-bee

    Сообщения: 119 Репутация: N Группа: Кто попало

    Spritz 20 июня 2010 г. 2:53, спустя 5 минут

    моё творчество для InnoDB не адекватно?

Пожалуйста, авторизуйтесь, чтобы написать комментарий!