为什么我的DELETE按钮不能以这种方式工作

时间:2016-01-05 19:18:42

标签: php

你知道为什么我的DELETE按钮不起作用。我刚刚开始学习。

void Free_Users_db(Users** users_db, Quantity qnty)
{
    free(*users_db);
    *users_db = NULL;
    puts("users db free");
}

我只是遗漏了一些东西,但我无法弄清楚那是什么

2 个答案:

答案 0 :(得分:0)

1)在循环之前,代码中缺少“form”标记。这样验证方法是否为POST的条件返回false。 2)while循环中的中断将停止在第一行中迭代结果。

答案 1 :(得分:0)

首先尝试尽可能地分离你的html和你的php是一个好习惯。看看AJAX。为简单起见,运行页面顶部的所有php if语句并在底部生成html。

<?php
    require("mysqli_connect.php");

    if(isset($_POST['delete'])){
        $id=$_POST['itemid'];   //This should be escaped for security reasons to avoid sql injection
        $q2="DELETE FROM contact WHERE Id='$id'";
        $result=mysqli_query($db,$q2);
    }

    //PAGE HTML
    $q="SELECT * FROM contact";
    $result=mysqli_query($db,$q);
    $i = 1;
    while($row=mysqli_fetch_assoc($result)) {
            echo "<tr>";
            echo '<td>'.$i.'</td>';
            echo '<td>'.$row['Name'].'</td>';
            echo '<td>'.$row['Email'].'</td>';
            echo '<td>'.$row['Phone'].'</td>';
            echo '<td>'.$row['Text'].'</td>';

            echo '<td><form action="#" method="post"><input type="hidden" name="itemid" value="'.$row['Id'].'">
            <input type="submit" name="delete" value="Delete" id="delete"></form></td>';
            echo "</tr>";
            $i++;
    }

    mysqli_close($db);
?>

html是在底部生成的。每次提交foprm时,都会在页面顶部调用if语句。如果您没有提交表单,则页面正常加载。如果它不起作用,请告诉我。

另请注意,您的用户输入日期不会被清理。永远不要相信用户输入的数据,并始终认为它是坏的。准备语句或转义$ _POST变量是个好主意。