thinkphp 商品添加款式 、规格、图片上传
商品添加规格款式、需求就是、前台点击图片显示商品数量 、价钱、规格名称、图片等、我先上一张展示图
讲一下我们会遇到哪些问题:后台有数据直接展示,可以添加和修改,也可以删除,还有上传图片、(假设上传两个款式)怎么确定这张图片属于哪一个的,先上一下代码:
<form method="post" id="foms">
<div id="father" class="father">
<div >
<!--<li class="jiage_biaoge_cont">-->
<!--<img src="__PUBLIC__/business/images/1.jpg"/>-->
<!--<input type="text" name="" value="西柚味500g两支装" />-->
<!--<input type="text" name="" value="18" />-->
<!--<input type="text" name="" value="5200" />-->
<!--<input type='button' class='btnDel' value='X' onclick = "$(this).parent().remove();"/>-->
<!--</li>-->
</div>
<input type="hidden" class="pis" alt="add_pid" name="pid" value="">
</div>
</form>
每个商品都有款式、
上面说到商品id,那么拿着我们的商品id,来请求后台。如果有数据那么就先展示出来
function color(ID){ //ID 是商品id,大家根据自己 的情况获取
//查看该商品有什么颜色
$.get("{:U('brand_color_json')}?ID="+ID ,function(dataObj){
$(".father div").html(null);
if(dataObj !=null){
$.each($(dataObj), function(i,obj){
var i= i+3;
var str='';
str+='<li class="jiage_biaoge_cont">';
str+='<img class="img'+i+'" src="'+ obj.E_Img1 +'"/>';
str+='<input type="file" onclick="uploadImg('+i+')" name="" id="photo'+i+'"/>';
str+='<input type="text" name="E_Color[E_Name][]" value="'+ obj.E_Name +'" />';
str+='<input type="text" name="E_Color[E_SellPrice][]" value="'+ obj.E_SellPrice +'" />';
str+='<input type="text" name="E_Color[E_Stock][]" value="'+ obj.E_Stock +'" />';
str+='<input type="button" class="btnDel" value="X" onclick = "$(this).parent().remove();"/>';
str+='<input type="hidden" name="E_Color[ID][]" value="'+ obj.ID +'" />';
str+='<input type="hidden" name="E_Color[E_Img1][]" value="'+ obj.E_Img1 +'" id="E_Img'+i+'"/>';
str+='</li>';
$(".father div").append(str); //我们追加到 上面的div中、
var i = i+1;
$("#add_Color").attr('val',i); //这里是定位图片,假设有三个图片、那就定位到3、然后下面添加的时候直接从4开始
});
}
}, "json");
}
//现在开始说添加规格
//价格和款式
function add(){
var vId = parseInt($("#add_Color").attr('val'));
$(".father div").append('<li class="jiage_biaoge_cont">'
+'<img class="img'+vId+'" src="__PUBLIC__/business/images/register_file_bg.png"/>'
+'<input type="file" onclick="uploadImg('+vId+')" name="" id="photo'+vId+'" />'
+'<input type="text" name="E_Color[E_Name][]" value="" />'
+'<input type="text" name="E_Color[E_SellPrice][]" value="" />'
+'<input type="text" name="E_Color[E_Stock][]" value="" />'
+'<input type="button" class="btnDel" value="X" onclick = "$(this).parent().remove();"/>'
+'<input type="hidden" name="E_Color[ID][]" value="0" />'
+'<input name="E_Color[E_Img1][]" type="hidden" id="E_Img'+vId+'" value="" />'
+'</li>'
);
var val = vId+1;
$("#add_Color").attr('val',val);
}
//点击添加的时候会自动追到后面 可以看下name的属性 、当你点击form表单
上传图片,上一篇有介绍 发下链接 http://blog.****.net/hua950327/article/details/77749569
//图片上传之后、前端问题处理完毕。开始提交到后台
后台接收
$info = $_POST; echo '<pre>'; print_r($info);exit;
打印:
对上面的数据处理:
贴代码:
//添加规格 public function addSpec(){ $info = $_POST; echo '<pre>'; // print_r($_POST); // $arr = M('member')->field('ID,E_Name')->limit(2)->select(); $E_Color = $info['E_Color']; $this->AddBrandColor($info['pid'],$E_Color); $this->jsonReturn(1, "编辑成功", ''); } public function addBrandColor($E_ProID,$E_Color){ $E_ProID = intval($E_ProID); if(!$E_ProID) return false; if(!empty($E_Color)){ $count = count($E_Color['E_Name']); foreach($E_Color as $k=>$v){ for($i=0;$i<$count;$i++){ $listName[$i][$k] = $v[$i]; } } } print_r($listName);exit; //处理好的数据 if(!empty($listName)){ $p_color = M('product_color'); foreach($listName as $sKy=>$sKv){ $ID = intval($sKv['ID']); $eName = trim($sKv['E_Name']); if($ID){ //规格id ,如果有那么就修改、没有就添加 if(!empty($eName)){ //想删除的话、我是以判断名字是否为空、 $sKv['E_UpdateDate'] = time(); $p_color->where(array('ID'=>$ID))->save($sKv); }else{ $p_color->where(array('ID'=>$ID))->delete(); } }else{ if(!empty($eName)){ $sKv['E_ProID'] = $E_ProID; $sKv['E_State'] = 1; $sKv['E_CreateDate'] = time(); $sKv['E_UpdateDate'] = time(); $p_color->add($sKv); } } } } return true; }
这样就处理完了、有哪里不明白可以给我留言,看到会及时回复!