请教checkbox问题,高手帮忙

wangzi761129 2004-12-16 02:29:41
lbgl.php
.....
<form method=GET action="<?echo $PATH_INFO?>">
<?
require ("showtable.php");
switch($submit)
{
case "删除所选类别":
include("deltype.php");
delete($selected);
showtable();
break;
省略。。。。
default:
showtable();
}
?>
</form>


showtable.php中定义了一个checkbox数组:
.....
while($array1=mysql_fetch_array($query1))
{
echo "<tr>";
echo "<td bgcolor=#FFE4AC>";
echo "<input type=checkbox name=selected[] value=$array1[type_id]></td>";
echo "<td bgcolor=#FFE9E9>$array1[type_id]</td>";
echo "<td bgcolor=#FFE9E9>$array1[type_name]</td>";
echo "</tr>";
}
......

在deltype.php中要取得checkbox的value的值
for($i=0;$i<count($selected);$i++){
$result1=mysql_query("select * from software_list where list_type=$_POST['selected'] [$i]");
$nums=mysql_num_rows($result1);
if($nums>0){
。。。。。
}else{。。。。}


最终的效果是只执行if中的语句,else后面的不被执行。不只是不是checkbox的值没有取对。
...全文
164 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
chf99cn 2004-12-17
  • 打赏
  • 举报
回复
$coun = count ($_POST['selected']);
$tmp=$_POST['selected'];
for ($i = 0; $i < $coun; $i++)
{
//删除操作
$result1=mysql_query("select * from software_list where list_type=$tmp[$i]");
}
wangzi761129 2004-12-17
  • 打赏
  • 举报
回复
因为form的action=GET,所以我可以看到地址栏中取的值是正确的。
但今天我这么写:
for($i=0;$i<count($selected);$i++){
$result1=mysql_query("select * from software_list where list_type=$_POST[selected][$i]");
$nums=mysql_num_rows($result1);
总是报错:Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
修改为:
$result1=mysql_query("select * from software_list where list_type=".$_POST[selected][$i]);
还是报上面的错;
修改成这样:
$result1=mysql_query('select * from software_list where list_type='.$_POST[selected][$i]);
还是报同样的措!晕呀!
wangzi761129 2004-12-17
  • 打赏
  • 举报
回复
在程序中echo $tmp[$i];却无显示
wangzi761129 2004-12-17
  • 打赏
  • 举报
回复
echo $coun;结果是0。但在地址栏里可以看到取的值都是正确的。这是咋回事?
chf99cn 2004-12-17
  • 打赏
  • 举报
回复
function delete($selected)
这个$selected是什么意思,在程序中不是可以得到$selected的value值吗?
你先不要写完代码,可以分部测试吗?
第一,测试$coun = count ($_POST['selected']);
echo $coun;
$tmp=$_POST['selected'];
for ($i = 0; $i < $coun; $i++)
{
//删除操作
echo $tmp[$i];
}
这个能不能取到你的value值呀,如果能哪么进行下一步测试!
如果不行,你就要改这一部分程序呀!你一步一步测下去,就可以了呀!
wangzi761129 2004-12-17
  • 打赏
  • 举报
回复
把程序deltype.php贴全了,改成chf99cn那样的,现在不报错了,但也没执行if和else.咋回事?
<?
function delete($selected){
if (count($selected)==0){
?>
<script language="javascript">
alert ("请选择要删除的类别!");
</script>
<? }
else{
$coun=count($_POST['selected']);
$tmp=$_POST['selected'];
for($i=0;$i<$coun;$i++){
$result1=mysql_query("select * from software_list where list_type=$tmp[$i]");
$nums=mysql_num_rows($result1);

if(nums>0){
?>
<script language="javascript">
alert ("该类别下还有软件列表,不能删除!");
</script>
<? }
else{
$result2=mysql_query("delete from software_type where type_id=$tmp[$i]");
if(!$result2){
?>
<script language="javascript">
alert ("错误:未能删除所选类别!");
</script>
<? }

}

}
}
}
?>
mynamesucks 2004-12-16
  • 打赏
  • 举报
回复
for($i=0;$i<count($selected);$i++){
这句如果你全局变量不开的话是取不到count($selected)的呀
chf99cn 2004-12-16
  • 打赏
  • 举报
回复
checkbox有没有取到值,你输出来看一下呀!测试一上,如果没有就证明是checkbox没有取得到值,改checkbox的地方就可以了呀!
wangzi761129 2004-12-16
  • 打赏
  • 举报
回复
高手帮忙看一下了!谢谢!
chf99cn 2004-12-16
  • 打赏
  • 举报
回复
全选一:
function chkAll_onClick(){
if(typeof(document.del.chkItem)=="undefined") return;
if (typeof(document.del.chkItem[0]) == "undefined"){document.del.chkItem.checked = document.del.chkAll.checked;}
else
for (i = 0; i <document.del.chkItem.length; i++)
document.del.chkItem[i].checked = document.del.chkAll.checked
return;
}
全选二:
function check(f)
{
var o = document.getElementsByTagName('INPUT');
f = f == '1'?'0':'1';
for(var i=0;i<o.length;i++)
{
if(o[i].type == 'checkbox') o[i].checked = f == '1'?false:true;
}
}
里面当然有叛断!
php中取值:
$coun = count ($_POST['chk']);
$tmp=$_POST['chk'];
for ($i = 0; $i < $coun; $i++)
{
//删除操作
$query_str = "DELETE FROM message WHERE message_id =$tmp[$i]";
$gDB->query($query_str);
}
uGain 2004-12-16
  • 打赏
  • 举报
回复
先输出一下看看内容

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧