ecshop之添加分类选择父类下来修改为联动
2016-10-17 10:10
316 查看
<tr>
<td class="label">{$lang.parent_id}:</td>
<td>
<select class="c_parent" name="parent[]" onchange="select_children(this)">
<option value="0">{$lang.cat_top}</option>
</select>
{if $cat_list}
<select class="c_parent" name="parent[]" onchange="select_children(this)">
<option value="0">请选择</option>
{$cat_list}
</select>
{/if}
{if $cat_parent_list}
{if $cat_parent_list.parent}
{foreach from=$cat_parent_list.parent item=val}
<select class="c_parent" name="parent[]" onchange="select_children(this)">
<option value="0">请选择</option>
{$val}
</select>
{/foreach}
{/if}
{if $cat_parent_list.child}
<select class="c_parent" name="parent[]" onchange="select_children(this)">
<option value="0">请选择</option>
{$cat_parent_list.child}
</select>
{/if}
{/if}
<input type="hidden" name="parent_id" id="parent_id" value="{$cat_info.parent_id}" />
</td>
</tr>
//2016-1-30 Donald 获取子分类
function get_cat_child($parent_id, $selected_id=0)
{
$res = $GLOBALS['db']->getAll("SELECT cat_id, cat_name FROM " .$GLOBALS['ecs']->table('category') ." WHERE parent_id=".$parent_id );
$options = "";
if($selected_id>0)
{
foreach ($res as $key => $val)
{
if($selected_id == $val['cat_id'])
{
$options .="<option selected='selected' value=".$val['cat_id'].">".$val['cat_name']."</option>";
}else
{
$options .="<option value=".$val['cat_id'].">".$val['cat_name']."</option>";
}
}
}else
{
foreach ($res as $key => $val)
{
$options .="<option value=".$val['cat_id'].">".$val['cat_name']."</option>";
}
}
return $options;
}
//2016-10-14 Donald 递归获取父类
//获取所有父类的分类
function get_cat_parent($self_id,$cat_id,$result=array()){
//定义数据
$options = "";
if($self_id>0){
//查询同父类的数据
$level_cat_info = $GLOBALS['db']->getAll("SELECT cat_id,cat_name FROM ".$GLOBALS['ecs']->table('category')." WHERE parent_id=".$cat_id);
//数据格式化
foreach($level_cat_info as $key=>$val){
if($self_id == $val['cat_id'])
{
$options .="<option selected='selected' value=".$val['cat_id'].">".$val['cat_name']."</option>";
}else
{
$options .="<option value=".$val['cat_id'].">".$val['cat_name']."</option>";
}
}
//数据保存
$result[$cat_id] = $options;
//下一个父类的数据
$parent_id = $GLOBALS['db']->getOne("SELECT parent_id FROM ".$GLOBALS['ecs']->table('category')." WHERE cat_id=".$cat_id);
$result = get_cat_parent($cat_id,$parent_id,$result);
}
return $result;
}
//2016-10-14 Donald 获取编辑时的分类联动
function edit_category_list($cat_id,$parent_id){
//获取子分类
$child = get_cat_child($cat_id);
//递归获取父类
$parent = get_cat_parent($cat_id,$parent_id);
$parent = array_reverse ($parent);//倒序数据数组
$arr['child'] = $child;
$arr['parent'] = $parent;
return $arr;
}
add:
$cat_list = get_cat_child(0);
$smarty->assign('cat_list', $cat_list);
edit:
$cat_parent_list = edit_category_list($cat_id, $parent_id);
$smarty->assign('cat_parent_list', $cat_parent_list);
<td class="label">{$lang.parent_id}:</td>
<td>
<select class="c_parent" name="parent[]" onchange="select_children(this)">
<option value="0">{$lang.cat_top}</option>
</select>
{if $cat_list}
<select class="c_parent" name="parent[]" onchange="select_children(this)">
<option value="0">请选择</option>
{$cat_list}
</select>
{/if}
{if $cat_parent_list}
{if $cat_parent_list.parent}
{foreach from=$cat_parent_list.parent item=val}
<select class="c_parent" name="parent[]" onchange="select_children(this)">
<option value="0">请选择</option>
{$val}
</select>
{/foreach}
{/if}
{if $cat_parent_list.child}
<select class="c_parent" name="parent[]" onchange="select_children(this)">
<option value="0">请选择</option>
{$cat_parent_list.child}
</select>
{/if}
{/if}
<input type="hidden" name="parent_id" id="parent_id" value="{$cat_info.parent_id}" />
</td>
</tr>
//2016-1-30 Donald 获取子分类
function get_cat_child($parent_id, $selected_id=0)
{
$res = $GLOBALS['db']->getAll("SELECT cat_id, cat_name FROM " .$GLOBALS['ecs']->table('category') ." WHERE parent_id=".$parent_id );
$options = "";
if($selected_id>0)
{
foreach ($res as $key => $val)
{
if($selected_id == $val['cat_id'])
{
$options .="<option selected='selected' value=".$val['cat_id'].">".$val['cat_name']."</option>";
}else
{
$options .="<option value=".$val['cat_id'].">".$val['cat_name']."</option>";
}
}
}else
{
foreach ($res as $key => $val)
{
$options .="<option value=".$val['cat_id'].">".$val['cat_name']."</option>";
}
}
return $options;
}
//2016-10-14 Donald 递归获取父类
//获取所有父类的分类
function get_cat_parent($self_id,$cat_id,$result=array()){
//定义数据
$options = "";
if($self_id>0){
//查询同父类的数据
$level_cat_info = $GLOBALS['db']->getAll("SELECT cat_id,cat_name FROM ".$GLOBALS['ecs']->table('category')." WHERE parent_id=".$cat_id);
//数据格式化
foreach($level_cat_info as $key=>$val){
if($self_id == $val['cat_id'])
{
$options .="<option selected='selected' value=".$val['cat_id'].">".$val['cat_name']."</option>";
}else
{
$options .="<option value=".$val['cat_id'].">".$val['cat_name']."</option>";
}
}
//数据保存
$result[$cat_id] = $options;
//下一个父类的数据
$parent_id = $GLOBALS['db']->getOne("SELECT parent_id FROM ".$GLOBALS['ecs']->table('category')." WHERE cat_id=".$cat_id);
$result = get_cat_parent($cat_id,$parent_id,$result);
}
return $result;
}
//2016-10-14 Donald 获取编辑时的分类联动
function edit_category_list($cat_id,$parent_id){
//获取子分类
$child = get_cat_child($cat_id);
//递归获取父类
$parent = get_cat_parent($cat_id,$parent_id);
$parent = array_reverse ($parent);//倒序数据数组
$arr['child'] = $child;
$arr['parent'] = $parent;
return $arr;
}
add:
$cat_list = get_cat_child(0);
$smarty->assign('cat_list', $cat_list);
edit:
$cat_parent_list = edit_category_list($cat_id, $parent_id);
$smarty->assign('cat_parent_list', $cat_parent_list);
相关文章推荐
- ecshop后台商品列表和添加修改选择供货商处只显示自己管理的
- ecshop后台商品列表和添加修改选择供货商处只显示自己管理的
- ECShop系统后台添加/修改分类时,指定分类所使用的模板文件!
- 请问ECSHOP首页站内快讯在哪里添加和修改?
- ecshop 修改商品分类里的略缩图大小和展示商品的个数
- ECSHOP给分类添加代表图
- js操作select 添加 删除 修改 清空 选择 获取
- 最近写了两个组件,一个是日期选择;一个是两个JList,双击其中一个的任一个Item,这个Item就会跑到另一个JList中去。这里记录下来,以便以后的修改。
- 黄页前台联动菜单修改时不能显示,要重新选择|没样式
- [OK]ecshop二次开发:商品分类添加图片显示功能
- ecshop:商品分类页和文章分类页添加自定义分类title,不填为空时默认为当前分类名称
- asp.net两级联动(包含添加和修改)
- 二级分类的添加删除和修改完成!
- ecshop首页分类栏目下小分类添加
- ECSHOP2.61添加首页文章分类方法
- Ecshop二次开发:修改产品分类描述为Fckeditor(二)
- asp.net两级联动(包含添加和修改)
- asp.net两级联动(包含添加和修改)
- ecshop二次开发:添加可折叠的分类列表
- 修改ecshop添加通过快递单号搜索订单的功能