免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4595 | 回复: 6
打印 上一主题 下一主题

修改页面复选框默认选中问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-05 13:41 |只看该作者 |倒序浏览
以下是所有的复选框选项,存在数据库中.读出后成一下数组
$class =  array (
    1 =>
    array (
      'id' => '1',
      'name' => '音乐',
    ),
    2 =>
    array (
      'id' => '2',
      'name' => '体育',
    ),
    3 =>
    array (
      'id' => '3',
      'name' => '旅游',
    ),
    4 =>
    array (
      'id' => '4',
      'name' => '影视',
    ),
    5 =>
    array (
      'id' => '5',
      'name' => '网络',
    ),
    6 =>
    array (
      'id' => '6,
      'name' => '游戏',
    ),
    7 =>
    array (
      'id' => '7',
      'name' => '美食',
    ),
    8 =>
    array (
      'id' => '8',
      'name' => '购物',
    ),
    9 =>
    array (
      'id' => '9',
      'name' => '时尚',
    ),
  )

$aaa = "1,2,8,9"

现在是要在一个修改页面上先把$class中的所有数据拿出来显示为如下复选框

然后$aaa中已经有选中的4个选项,把这四个选项设置为默认选中
最后在页面上显示成如下形式


请问各位大大如何用php来实现.

论坛徽章:
0
2 [报告]
发表于 2008-01-05 17:48 |只看该作者
$aaa成数组, 遍历数组$class 生成checkbox的时候判断一下键是否在$aaa之内

论坛徽章:
0
3 [报告]
发表于 2008-01-05 21:03 |只看该作者

  1.   $aaa = "1,2,8,9";
  2.   $bbb = explode(",", $aaa);
  3.   foreach($bbb as $id) {
  4.    foreach($_class as $cid => $cinfo) {
  5.     if($cid==$id) {
  6.      $showa .= "<td><input id=\"funinfo\" name=\"funid[]\" type=\"checkbox\" value=\"$cid\" checked>$cinfo[name]</td>";
  7.     } else {
  8.      $showa .= "<td><input id=\"funinfo\" name=\"funid[]\" type=\"checkbox\" value=\"$cid\" >$cinfo[name]</td>";
  9.     }
  10.    }
  11.   }
  12.   print_r($showa);
复制代码




我是这样写段代码,但最终显示出来的如上所示,应该是循环出错了吧,请大大们帮忙修改下

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
4 [报告]
发表于 2008-01-05 23:11 |只看该作者
输出一下子,看每次的cid id到底都是什么

论坛徽章:
0
5 [报告]
发表于 2008-01-05 23:28 |只看该作者
HonestQiao 老大还没休息啊
我把$id 和$cid都显示出来的结果为

1123456789 2123456789 8123456789 9123456789
感觉是循环有问题,但一直调试不成功,请老大帮忙修改下

  $aaa = "1,2,8,9";
  $bbb = explode(",", $aaa);
  foreach($bbb as $id) {
   print_r($id);
   foreach($_class as $cid => $cinfo) {
    print_r($cid);
    if($cid==$id) {
     $showa .= "<td><input id=\"funinfo\" name=\"funid[]\" type=\"checkbox\" value=\"$cid\" checked>$cinfo[name]</td>";
    } else {
     $showa .= "<td><input id=\"funinfo\" name=\"funid[]\" type=\"checkbox\" value=\"$cid\" >$cinfo[name]</td>";
    }
   }
  }
  print_r($showa);

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
6 [报告]
发表于 2008-01-06 13:38 |只看该作者
原帖由 kevensky 于 2008-1-5 23:28 发表
HonestQiao 老大还没休息啊
我把$id 和$cid都显示出来的结果为

1123456789 2123456789 8123456789 9123456789
感觉是循环有问题,但一直调试不成功,请老大帮忙修改下

  $aaa = "1,2,8,9";
  $bbb = exp ...

  $aaa = "1,2,8,9";
&nbsp;&nbsp;$bbb = explode(",", $aaa);
&nbsp;&nbsp;$showa = '';
&nbsp;&nbsp;&nbsp;foreach($class as $cid => $cinfo) {
&nbsp;&nbsp;&nbsp;&nbsp;if(array_search($cid,$bbb)!==FALSE) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$showa .= "<td><input id=\"funinfo\" name=\"funid[]\" type=\"checkbox\" value=\"$cid\" checked>$cinfo[name]</td>\n";
&nbsp;&nbsp;&nbsp;&nbsp;} else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$showa .= "<td><input id=\"funinfo\" name=\"funid[]\" type=\"checkbox\" value=\"$cid\" >$cinfo[name]</td>\n";
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;print_r($showa);

论坛徽章:
0
7 [报告]
发表于 2008-01-06 18:58 |只看该作者
哈哈~~~非常感谢HonestQiao老大的解答,已经实现预期目标
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP