帝国CMS会员功能修改之第三课-增加会员注册复选功能
www.1573net.com原创,转载请务必保留此句.
目前帝国CMS的会员注册功能还不支持复选功能,在官方论坛上看了一部分文章,还是没有人能很好的解决这个问题,下面来看看我是如何解决的吧。
以字段行业为例,实现会员注册行业可以复选的功能。
1、 修改D:\EmpireServer\web\e\member\register\register.php
增加如下行业信息
<tr>
<td height="25" bgcolor="#FFFFFF"> <div align='left'>行业</div></td>
<td bgcolor="#FFFFFF">
◎工程类<BR>
<input name="hangye[]" type="checkbox" value="建筑工程|">建筑工程
<input name="hangye[]" type="checkbox" value="水利水电工程|">水利水电工程
<input name="hangye[]" type="checkbox" value="道路工程|">道路工程
<input name="hangye[]" type="checkbox" value="桥梁工程|">桥梁工程
<input name="hangye[]" type="checkbox" value="通信工程|">通信工程
<input name="hangye[]" type="checkbox" value="矿山工程|">矿山工程
......
</td>
</tr>
这个是行业的具体复选字段信息,依靠手工添加。
2、修改\e\class\user.php
增加后台会员行业信息入库信息
199 //行业 2008-07-25 增加 $hy="|"; foreach($_POST['hangye'] as $c) { $hy.=$c; } //echo $hy; $sql1=$empire->query("insert into {$dbtbpre}enewsmemberadd(userid,spacestyleid".$member_r[0].",hangye) values($userid,$spacestyleid".$member_r[1].",'$hy');");
这一段语句是将复选的行业的值增加到会员信息表中。
行业信息增加成功了,还有前台和后台会员行业信息修改的问题,下面来看看如何实现行业修改的。
增加前台会员修改行业复选入库
671 //附加表
//行业 2008-07-25 增加
$hay="|";
foreach($_POST['hangye'] as $c)
{
$hay.=$c."|";
}
//echo $hay;
if(empty($addr[userid]))
{
$sql1=$empire->query("insert into {$dbtbpre}enewsmemberadd(userid".$member_r[0].",hangye) values($userid".$member_r[1].",'$hy');");
}
else
{
$sql1=$empire->query("update {$dbtbpre}enewsmemberadd set userid='$userid'".$member_r[0].",hangye='$hay' where userid='$userid'");
}
www.1573net.com原创,转载请务必保留此句.
后台修改资料
198 //附加表
//行业 2008-07-25 增加
$hay="|";
foreach($_POST['hangye'] as $c)
{
$hay.=$c."|";
}
//echo $hay;
if(empty($addr[userid]))
{
$sql1=$empire->query("insert into {$dbtbpre}enewsmemberadd(userid,spacestyleid".$member_r[0].",hangye) values($add[userid],$add[spacestyleid]".$member_r[1].",'$hy');");
}
else
{
$sql1=$empire->query("update {$dbtbpre}enewsmemberadd set spacestyleid=$add[spacestyleid]".$member_r[0].",hangye='$hay' where userid='$add[userid]'");
}
前台和后台会员信息修改的文件还要做相应的修改来显示行业信息
前台会员信息修改文件的地址在D:\EmpireServer\web\e\member\EditInfo\index.php,在合适的位置加上如下代码,根据你的实际需要修改代码
<tr> <td height="25" bgcolor="#FFFFFF"> <div align='left'>行业</div></td> <td bgcolor="#FFFFFF"> <? $uaddr=$empire->fetch1("select * from {$dbtbpre}enewsmemberadd where userid='$user[userid]' limit 1"); ?> ◎工程类<BR><input name="hangye[]" type="checkbox" value="建筑工程"<?=strstr($uaddr[hangye],"|建筑工程|")?' checked':''?>>建筑工程<input name="hangye[]" type="checkbox" value="水利水电工程"<?=strstr($uaddr[hangye],"|水利水电工程|")?' checked':''?>>水利水电工程<input name="hangye[]" type="checkbox" value="道路工程"<?=strstr($uaddr[hangye],"|道路工程|")?' checked':''?>>道路工程<input name="hangye[]" type="checkbox" value="桥梁工程"<?=strstr($uaddr[hangye],"|桥梁工程|")?' checked':''?>>桥梁工程<input name="hangye[]" type="checkbox" value="通信工程"<?=strstr($uaddr[hangye],"|通信工程|")?' checked':''?>>通信工程<input name="hangye[]" type="checkbox" value="矿山工程"<?=strstr($uaddr[hangye],"|矿山工程|")?' checked':''?>>矿山工程 </td> </tr>
后台会员信息修改文件的地址在D:\EmpireServer\web\e\admin\member\AddMember.php,在合适的位置加上如下代码,根据你的实际需要修改代码
<tr bgcolor="#FFFFFF"> <td height="25">行业</td> <td height="25"> ◎工程类<BR><input name="hangye[]" type="checkbox" value="建筑工程"<?=strstr($addr[hangye],"|建筑工程|")?' checked':''?>>建筑工程<input name="hangye[]" type="checkbox" value="水利水电工程"<?=strstr($addr[hangye],"|水利水电工程|")?' checked':''?>>水利水电工程<input name="hangye[]" type="checkbox" value="道路工程"<?=strstr($addr[hangye],"|道路工程|")?' checked':''?>>道路工程<input name="hangye[]" type="checkbox" value="桥梁工程"<?=strstr($addr[hangye],"|桥梁工程|")?' checked':''?>>桥梁工程<input name="hangye[]" type="checkbox" value="通信工程"<?=strstr($addr[hangye],"|通信工程|")?' checked':''?>>通信工程<input name="hangye[]" type="checkbox" value="矿山工程"<?=strstr($addr[hangye],"|矿山工程|")?' checked':''?>>矿山工程 </td> </tr>
这样我们就实现了会员注册行业复选的功能。
这个方法唯一的缺点就是要通过修改三个文件来实现该功能,不能很方便的在后台进行操作,并且复选的字段是固定写在文字中的,修改字段的时候必须通过修改php文件来实现,不方便初学者,希望能在官方的下一个版本中看到会员复选功能的出现。
www.1573net.com原创,转载请务必保留此句.
演示请看 http://www.xjztb.com/e/member/register/ 如果上面那个打开慢,就用这个 http://www.xjztb.com/e/member/register/
本文来自:一网情深(www.1573net.com) 原文链接:http://www.1573net.com/ecms/942.htm
|