php怎么在复选框中获取到变化的值?


标题的描述可能很不准确..事情是这样的:
我在学习php,准备做一个类似于的todolist的小项目。
有个数据表,里面有值ID(主键)和thing两个列。
现在把thing循环输出出来,在每个值前面加上复选框。我想选定复选框后,点击「完成」按钮,就在SQL中把这一行给delete掉。

现在的问题就是,我不知道用复选框选择后,点击完成,怎么获取到这个thing的id,然后用sql语句删除掉
就是这样的

while ($row = mysql_fetch_array($query))
    {
        //输入复选框

        echo "<form action=\"index.php\" method=\"post\" name=\"finish\">";
        echo "<input name=\"a[]\" type=\"checkbox\" id=\"a[]\" value=\".$row[id].\" />";
        echo $i ;
        $i = $i + 1;
        echo $row[thing];
        echo "->" ;
        outputTheTime($row[time]);
        echo "<br /><hr />";
    }
    echo "<input name = \"finish\" type = \"submit\" id =\"finish\" value = \"完成\" />";
    echo "</form>";
//完成,删除事项。
    if($_POST['finish'])
    {
        for($i=0;$i<count($_POST["a"]);$i++)
        {
            $sql = "DELETE FROM todaylist WHERE id = {$_POST["a"][$i]}";//这里肯定不对吧...
            mysql_query($sql);
        }

        echo "<meta http-equiv=refresh content=0;url=index.php>";

因为是自学,而且刚起步,请忽略掉我屎一样的代码-。-

新手问题 php mysql

规则劳动者大厦 11 years, 9 months ago

都是一些语法错误了,思路没什么大碍。
再次强调一边,数组里面键值引用的时候一定要用引号!!!引号,这是个字符串。 你这个语法都是哪本书教的,刚学的时候千万别偷懒。比如 $row[thing] ,一定要写成 $row['thing']

这段里面的

echo "<input name=\"a[]\" type=\"checkbox\" id=\"a[]\" value=\".$row[id].\" />";

要改成

echo "<input name=\"a[]\" type=\"checkbox\" id=\"a[]\" value=\"{$row['id']}\" />";

delete的时候

$sql = "DELETE FROM todaylist WHERE id = {$_POST["a"][$i]}";

要改成, 要弄清楚双引号的字符串里面要用单引号

$sql = "DELETE FROM todaylist WHERE id = {$_POST['a'][$i]}";
leonly answered 11 years, 9 months ago

Your Answer