您的位置:首页 > 运维架构

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: