标题的描述可能很不准确..事情是这样的:
我在学习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>";
因为是自学,而且刚起步,请忽略掉我屎一样的代码-。-
再次强调一边,数组里面键值引用的时候一定要用引号!!!引号,这是个字符串。你这个语法都是哪本书教的,刚学的时候千万别偷懒。比如$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]}";
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。