11.5 商品分类管理模块设计
商品分类管理模块可以添加、修改和删除商品分类记录。
只有管理用户才有权限进入商品分类管理模块。在 Admin\Index.php 中,单击“商品分类”超链接,可以打开分类管理页面TypeList.php。
11.5.1 商品分类管理页面
打开商品分类管理界面,如图11-7所示。
图11-7 商品分类管理
下面将介绍TypeList.php中与界面显示相关的部分代码。
1.显示商品分类信息
为了便于管理商品分类,TypeList.php 以表格的形式显示商品分类名称,并在后面显示修改和删除超链接。代码如下:
<table border="1" cellspacing="0" width="90%" bordercolorlight="#4DA6FF"bordercolordark="#ECF5FF">
<tr>
<td width="30%" align="center" bgcolor="#eeeeee"><strong>分类名称</strong></td>
<td width="20%" align="center" bgcolor="#eeeeee"><strong>修改</strong></td>
<td width="20%" align="center" bgcolor="#eeeeee"><strong>删除</strong></td>
</tr>
<?PHP
//读取分类数据
$results = $objType->GetGoodsTypelist();
$exist = false;
//在表格中显示分类名称
while($row = $results->fetch_row())
{
$exist = true;
?>
<tr>
<td><? echo($row[1]); ?></td>
<td align="center"><a href="TypeList.php?Oper=update&tid=<?PHPecho($row[0]); ?>&name=<?PHP echo($row[1]); ?>">修改</a></td>
<td align="center"><a href="TypeList.php?Oper=delete&tid=<?PHPecho($row[0]); ?>&name=<?PHP echo($row[1]); ?>">删除</a></td>
</tr>
<?PHP } ?>
</table>
<p align="center">
<?PHP
if(!$exist) //如果记录集为空,则显示“目前还没有记录”
{
echo("<tr><td colspan=4 align=center><font style='COLOR:Red'>目前还没有记录。</font></td></tr></table>");
}
?>
</form>
“修改”超链接的定义代码如下:
<a href="TypeList.php?Oper=update&tid=<?PHP echo($row[0]); ?>&name=<?PHPecho($row[1]); ?>">修 改</a>
可以看到,修改商品分类的页面也是TypeList.php。参数Oper的值为update,表示当前操作为修改商品分类;参数tid表示要修改的商品分类编号;参数name表示要修改的商品分类名称。“删除”超链接的定义代码如下:
<a href="TypeList.php?Oper=delete&tid=<?PHP echo($row[0]); ?>&name=<?PHPecho($row[1]); ?>">删 除</a>
删除商品分类的页面也是TypeList.php。参数Oper的值为delete,表示当前操作为删除商品分类;参数tid表示要删除的商品分类编号;参数name表示要删除的商品分类名称。
2.添加或修改商品分类的表单
在商品分类表格的下面,将显示添加或修改商品分类的表单,包括一个文本框和一个按钮。当flag = update时,将显示修改商品分类的表单;否则显示添加商品分类的表单,如图11-8所示。
图11-8 修改商品分类的表单
表单的代码如下:
<?PHP
//如果当前状态为修改,则显示修改的表单,否则显示添加的表单
if($Soperate=="update")
{
$sTitle=$_GET["name"];
?>
<form name="UFrom" method="post" action="TypeList.php?tid=<?PHP echo($Operid);?>&Oper=edit">
<div align="center">
<input type="hidden" name="sOrgTitle" value="<? echo($sTitle); ?>">
<font color="#FFFFFF"><b><font color="#000000">分类名称</font></b></font>
<input type="text" name="txttitle" size="20" value="<?PHP echo($sTitle); ?>">
<input type="submit" name="Submit" value="修改">
</div>
</form>
<?PHP }
else
{
?>
<form name="AForm" method="post" action="TypeList.php?Oper=add">
<p align="center">
<font color="#FFFFFF"><b><font color="#000000">添加分类:</font></b></font>
分类名称: <input type="text" name="txttitle" size="20">
<input type="hidden" name="sUpperId" value="0">
<input type="submit" name="Submit" value="添加" onclick="return form_onsubmit1 (this.form)">
</p>
</form>
<? } ?>
添加和修改商品分类的脚本都是TypeList.php,只是参数不同。当参数Oper等于edit时,程序将处理修改的商品分类数据;当参数Oper等于add时,程序将处理添加的商品分类数据。
11.5.2 添加商品分类
在执行 TypeList.php 时,如果参数 Oper 不等于 update,页面的下方将显示添加数据的表单Aform。在文本域txttitle中输入商品分类的名称,然后单击“添加”按钮,将调用TypeList.php,参数Oper等于add,表示插入新记录。下面将介绍相关的代码。
在打开TypeList.php页面时,可以在url中包含参数,程序将根据参数Oper的值决定进行的操作。与添加数据相关的代码如下:
<?PHP
include('..\Class\GoodsType.php');
include('..\Class\Goods.php');
$objType = new GoodsType();
$objGoods = new Goods();
//处理添加、修改和删除操作
$Soperate=$_GET["Oper"];
$Operid=$_GET["tid"];
//删除
if($Soperate=="delete")
{
……
}
elseif ($Soperate=="add") //添加
{
$Name=$_POST["txttitle"];
//判断是否已经存在此分类名称
if($objType->HaveGoodsType($Name))
{
echo("已经存在此分类名称!");
}
else
{
$objType->TypeName=$Name;
$objType->insert();
}
}
elseif ($Soperate=="edit")
{
……
}
?>
在插入商品分类之前,应该调用$objType->HaveGoodsType()函数判断此商品分类是否已经存在。这样可以避免出现重复的商品分类。
11.5.3 修改商品分类
在 TypeList.php 中,单击商品分类后面的“修改”超链接,将再次执行 TypeList.php,参数Oper等于update。此时,页面的下方将显示修改数据的表单Uform。在文本域txttitle中输入商品分类的名称,然后单击“修改”按钮,将调用TypeList.php,参数Oper等于edit,表示修改记录。
下面将介绍相关的代码。
在打开TypeList.php时,可以在url中包含参数,程序将根据参数Oper的值决定进行的操作。与修改数据相关的代码如下:
<?
include('..\Class\GoodsType.php');
include('..\Class\Goods.php');
$objType = new GoodsType();
$objGoods = new Goods();
//处理添加、修改和删除操作
$Soperate=$_GET["Oper"];
$Operid=$_GET["tid"];
//删除
if($Soperate=="delete")
{
……
}
elseif ($Soperate=="add") //添加
{
……
}
elseif ($Soperate=="edit")
{
$Name=$_POST["txttitle"];
//判断是否已经存在此分类名称
if ($objType->HaveGoodsType($Name))
{
echo("已经存在此分类名称!");
}
else
{
$objType->TypeName=$Name;
$objType->update($Operid);
}
}
?>
在修改商品分类之前,应该判断新的商品分类是否已经存在,这样可以避免出现重复的商品分类。
11.5.4 删除商品分类
在TypeList.php中,“删除”超链接的定义代码如下:
<a href="TypeList.php?Oper=delete&tid=<?PHP echo($row[0]); ?>&name=<?echo($row[1]); ?>">删 除</a>
删除商品分类的页面也是TypeList.php。参数Oper的值为delete,表示当前操作为删除商品分类;参数tid表示要删除的商品分类编号;参数name表示要删除的商品分类名称。
与删除操作相关的代码如下:
//删除
if($Soperate=="delete")
{
//判断商品表中是否存在此分类
if ($objGoods->HaveGoodsType($Operid))
{
exit("此分类包含商品信息,不能删除!");
}
$objType->delete($Operid);
exit("分类已经成功删除!");
}
elseif ($Soperate=="add") //添加
{
……
}
elseif ($Soperate=="edit")
{
……
}
?>
程序首先调用$objGoods->HaveGoodsType($Operid)函数判断要删除的商品分类中是否包含商品信息,如果包含,则不允许删除;然后调用$objType->delete($Operid)函数删除指定的商品分类信息。