首页 > 开发 > MySQL > 正文

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

2017-09-08 09:12:10  来源:网友分享

标题的描述可能很不准确..事情是这样的:
我在学习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]}";