Выбрать строки из таблицы средствами checkbox

249
20 ноября 2017, 20:53

Нужно сделать удаление строк, выбранный через чекбокс. При исполнении файла db_delete выдно, что данные от чекбокса не получаются. Как получить данные по чек боксу и правильно вставить их в запрос? Есть index.php

<!DOCTYPE html>
    <html>
    <body>
        <frameset>
            <frame name="table">
       <?php
        include ("include/connect.php");
        $query ="SELECT * FROM users";
        $result = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link));
        if($result)
        {
            $rows = mysqli_num_rows($result); // количество полученных строк

            echo " <table align=centre border 1>
                    <tr>
                    <th> Выбрать </th>
                    <th> id </th>
                    <th> Имя пользователя   </th>
                    <th>e-mail</th>
                    <th>Телефон</th>
                    <th>Отдел</th>";
            for ($i = 0 ; $i < $rows ; ++$i)
            {
                $row = mysqli_fetch_row($result);
                echo "<tr>";
                // id_user это атрибут, который выводится в колонке id
                    echo "<td> <input type=checkbox name=arr[] value=$row[id_user]></td>";//Вставляем чекбокс для выбора кортежа
                for ($j = 0; $j < 5; ++$j) {
                    echo "<td>$row[$j]</td>"; // Выводим таблицу
                }
                echo "</tr>";
            }
            echo "</table>";
            mysqli_free_result($result);
        }
        mysqli_close($link);
?>

           <frame name="table_change">
               <form> 
            <p>
                <tr>
                <input formmethod = "POST" formaction="db_insert.php" type="submit" name="insert" value="Добавить" formtarget="_parent" >
                <tr>
                <input formmethod = "POST" formaction="db_delete.php" type="submit" name="delete" value="Удалить" formtarget="_parent" >
                <tr>
                <input formmethod = "POST" formaction="db_change.php" type="submit" name="chenge" value="Изменить" formtarget="_parent" >

        </form>
            </frameset>
    </body>
</html

и db_delete.php

<!DOCTYPE html>
<html>
   <body>
        <?php
            include ("include/connect.php");
            //Проверка нажаты ли галочки
            if (isset($_POST['delete'])) {
            $arr = $_POST["arr"];
            $arrthis = '';
            for($a = 0; $a<count($arr); $a++) {
            //записываем все нажатые чекбоксы в строку через , 
            $arrthis .= $arr[$a].',';
            }
            echo '<p> Нажаты: '.$arrthis; }
            if (!empty($_POST['arr']))
                {$query_del = "DELETE FROM `users` WHERE `id_user` IN ( " . implode( ', ', $_POST['Arr'] ) . " ) ";
                    $del = mysqli_query($link,$query_del) or die(mysql_error());
                    //Если запрос пройдет успешно то в переменную result вернется true
                    if($del == 'true') 
                    {echo "<p> Ваши данные успешно удалены ";}
                    else{echo "<p> Ваши данные не удалены";}
                }   
                echo "<p> Выберете данные";
                mysqli_free_result($del);
                mysqli_close($link);
        ?>
        <form method="POST" action="db_delete.php">
            <a href="index.php" class="tab">
                <input type="button" name="return" value="назад" /></a>        
        </form>    
    </body>
</html>
Answer 1

1) checkbox должен лежать внутри формы

<form>
<input type="checkbox">
</form>

2) Проверка данных

if (is_array($_POST['arr']))

3) Ошибка в регистре ключа: Нельзя $_POST['Arr'], нужно $_POST['arr'].

READ ALSO
Как правильно залить код сайта для вопроса?

Как правильно залить код сайта для вопроса?

Как правильно залить код сайта для того, чтобы задать вопрос на Stack Overflow? У страницы много PHP-элементов, которые импортируются через inqlude, поэтому...

153
file_get_contents проверка наличия пустоты

file_get_contents проверка наличия пустоты

Есть код который выводит список друзей, которые приходят в url в формате json

181
qt QCustomplot, сборка. Не найдена точка входа

qt QCustomplot, сборка. Не найдена точка входа

Приятного времени сутокРешил разобраться с постройкой графиков используя QCustomPlot

169
Как скопировать файлы из массива?

Как скопировать файлы из массива?

Только вникаю не судите =)

286