Ecmall商品添加将品牌改为选择式
ecmall中,搜索商品的时候,通过品牌搜不到商品,是因为ecmall源代码不搜索未通过审核的品牌,我现在将已通过的品牌放到商品添加页面,让用户选择已通过商标,
效果图
下面是我的代码,有需要的朋友有请复制,如果出现任何问题,请留言,我会尽快查看
修改文件my_goods.form.html
在 <h2>{$lang.brand}:</h2> 下面改为
<div class="arrange"><inputid="brand" type="hidden"name="brand" value="{$goods.brand|escape}" class="textwidth_short" />
<!--{if$goods.brand}-->
<span id='hide'>{$goods.brand|escape}</span>
<a class="edit_bcategory btn" href="javascript:;">{$lang.edit}</a>
<select id="select_brand" style="display:none">
<option>品牌分类 </option>
<!--{foreach from=$brand_catesitem=brand_cate}-->
<option value="{$brand_cate.tag}">{$brand_cate.tag}</option>
<!--{/foreach}-->
</select>
<!--{else}-->
<select id="select_brand">
<option>品牌分类 </option>
<!--{foreach from=$brand_catesitem=brand_cate}-->
<option value="{$brand_cate.tag}">{$brand_cate.tag}</option>
<!--{/foreach}-->
</select>
<!--{/if}-->
</div>
当前页面里面加上下面这些js
<script> $(function(){ $(".edit_bcategory").click( function(){ $(".edit_bcategory").hide(); $("#hide").hide(); $("#select_brand").show(); } ); $("#select_brand").change(function(){ varbrand_cate=$("#select_brand").val(); $(this).nextAll("select").remove();//删除后面的select var _self = this; var url =REAL_SITE_URL + '/index.php?app=mlselection&type=bcategory'; $.getJSON(url, {'pid':brand_cate},function(data){ if (data.done) { if (data.retval.length> 0) { $("<selectid='brand_name'><option>" + lang.select_pls + "</option></select>").change(brandChange).insertAfter(_self); var data = data.retval; for (i = 0; i <data.length; i++) { $(_self).next("select").append("<optionvalue='" + data[i].brand_name + "'>" + data[i].brand_name + "</option>"); } $a=$("#brand_name").val(); } } else { alert(data.msg); } }); function brandChange(){ varbrand_name=$("#brand_name").val(); $("#brand").val(brand_name); } }); }) </script>
修改文件app/mlselection.app.php
in_array($_GET['type'], array('region','gcategory','bcategory'))or $this->json_error('invalid type');
在switch里面加一个
case 'bcategory':
$mod_brand =& m('brand');
$brands =$mod_brand->getBrands($pid);
foreach ($brands as $key=> $brand)
{
$brands[$key]['brand_name'] = htmlspecialchars($brand['brand_name']);
}
$this->json_result(array_values($brands));
break;
在include/brand.model.php加上两个方法
//取得所有品牌分类
function getAllBrands_cate()
{
$sql= "SELECT * FROM {$this->table} WHERE if_show = 1 GROUP BY tag";
return$this->db->getAll($sql);
}
//取得指定分类的所有品牌
function getBrands($tag)
{
$sql= "SELECT * FROM {$this->table} WHERE tag='$tag' ";
return$this->db->getAll($sql);
}
在app/my_goods.app.php
在 在add方法里面,和edit方法里
$this->assign('sgcategories',$this->_get_sgcategory_options()); //店铺分类
下面加上
//取得品牌分类
$brand_model=& m('brand');
$brand_cates=$brand_model->getAllBrands_cate();
$this->assign('brand_cates',$brand_cates);