checkbox血泪史
原帖地址:http://www.dophp.net/thread-476-1-1.html
由大斌发表PHP同盟会题目是够吓人的,但也是事实,因为本人是新鸟,所以做的比较累,花的时间也长些。如果没记错的话,应该有一个多星期了。先是改实现方式,期间麻烦了不少人。后来本周一时,才知道自己错在哪里了。把两个submit放到一个Form里了,不鬼打架才怪。还有一个问题,说出来怕丢人,也怕LEO骂人。以前犯过一次了,就是数据库的字段我用的是ID,而在页面中执行时,我却用id,所以,老是得不到数据。好了,说正事吧:
其实坛子里高手们写的很多,可惜我这个菜鸟看不懂,要不然,自己也不用花那么多的时间自己去捉摸。这个例子是说,如何取checkbox的值,然后传给下一个页面的。[复制PHP代码] [ - ]PHP代码如下:
页面1:
......
<?php
$sqlstr="select * from stuff where kind='$kind'";
$result=mysql_query($sqlstr,$link);
while($info=mysql_fetch_array($result))
{
?>
<form name="mx" action="del_stuff_chk.php" method="post" >
<tr height="30">
<td width="50" align="center" class="text">
<input name="delid[]" type="checkbox" value="<?php echo $info[ID];?>">
</td>
<td width="100" class="text"><?php echo $info[name];?></td>
<td class="text"><?php echo $info[kind];?></td>
</tr>
<?php
}
?>
<tr height="30">
<td colspan="3" align="center" valign="bottom">
<input type="submit" name="del" value="删除">
<input type="reset" name="reset" value="重置">
<input type="button" name="back" value="返回" onclick=window.location.href="admin.php">
</td>
</tr>
表stuff有三个字段ID,name和kind,分别对应的是:ID,名称和分类.
页面2:
<?php
$delid=$_POST[delid];
if($delid=="")
{
?>
<script>alert("对不起,您没有选择任何项,请返回重新操作!");location.href="del_stuff.php";</script>
<?php
}
else
{
for($i=0;$i<count($delid);$i++)
{
$sqlstr="delete from stuff where ID ='$delid[$i]'";
$result=mysql_query($sqlstr,$link);
if($result)
{
?>
<script>alert("恭喜,所选记录删除成功!");location.href="del_stuff.php";</script>
<?php
}
else
{
?>
<script>alert("对不起,所选记录删除失败,请重新操作!");location.href="del_stuff.php";</script>
<?php
}
}
}
?>
原帖地址:http://www.dophp.net/thread-476-1-1.html
由大斌发表PHP同盟会题目是够吓人的,但也是事实,因为本人是新鸟,所以做的比较累,花的时间也长些。如果没记错的话,应该有一个多星期了。先是改实现方式,期间麻烦了不少人。后来本周一时,才知道自己错在哪里了。把两个submit放到一个Form里了,不鬼打架才怪。还有一个问题,说出来怕丢人,也怕LEO骂人。以前犯过一次了,就是数据库的字段我用的是ID,而在页面中执行时,我却用id,所以,老是得不到数据。好了,说正事吧:
其实坛子里高手们写的很多,可惜我这个菜鸟看不懂,要不然,自己也不用花那么多的时间自己去捉摸。这个例子是说,如何取checkbox的值,然后传给下一个页面的。[复制PHP代码] [ - ]PHP代码如下:
页面1:
......
<?php
$sqlstr="select * from stuff where kind='$kind'";
$result=mysql_query($sqlstr,$link);
while($info=mysql_fetch_array($result))
{
?>
<form name="mx" action="del_stuff_chk.php" method="post" >
<tr height="30">
<td width="50" align="center" class="text">
<input name="delid[]" type="checkbox" value="<?php echo $info[ID];?>">
</td>
<td width="100" class="text"><?php echo $info[name];?></td>
<td class="text"><?php echo $info[kind];?></td>
</tr>
<?php
}
?>
<tr height="30">
<td colspan="3" align="center" valign="bottom">
<input type="submit" name="del" value="删除">
<input type="reset" name="reset" value="重置">
<input type="button" name="back" value="返回" onclick=window.location.href="admin.php">
</td>
</tr>
表stuff有三个字段ID,name和kind,分别对应的是:ID,名称和分类.
页面2:
<?php
$delid=$_POST[delid];
if($delid=="")
{
?>
<script>alert("对不起,您没有选择任何项,请返回重新操作!");location.href="del_stuff.php";</script>
<?php
}
else
{
for($i=0;$i<count($delid);$i++)
{
$sqlstr="delete from stuff where ID ='$delid[$i]'";
$result=mysql_query($sqlstr,$link);
if($result)
{
?>
<script>alert("恭喜,所选记录删除成功!");location.href="del_stuff.php";</script>
<?php
}
else
{
?>
<script>alert("对不起,所选记录删除失败,请重新操作!");location.href="del_stuff.php";</script>
<?php
}
}
}
?>
$sqlstr="delete from stuff where ID in (".implode(",", $delid).")";
这样只执行一次SQL是不是更好呢