---恢复内容开始---

//php页面
public function test(){
$id="1";
$data=Db::table('week3_goods')
->join("week3_hp","week3_goods.g_id=week3_hp.goods_id")
->join("week3_goods_attr","week3_hp.g_a_id=week3_goods_attr.g_a_id")
->where("week3_goods.g_id",$id)
->select();
//print_r($data);die;
foreach($data as $k =>$v){
if($v['a_id']){
$ids=explode(',',$v['a_id']);
foreach($ids as $kk =>$vv){
$res=Db::table('week3_attr')->where("a_id",$vv)->find();
$ids[$kk]=$res['a_val'];
$data[$k]['attr']=$ids;
}
}
}
$color=Db::table('week3_attr')->where("a_name",'颜色')->select();
$buttor=Db::table('week3_attr')->where("a_name","内存")->select();
return view("index",['color'=>$color,'buttor'=>$buttor,'arr'=>$data]);
} //添加数据
public function add(){
$data=Request::instance()->param();
foreach($data['color'] as $k =>$v){
$arr['goods_id']=$data['goods_id'];
$arr['attr']=$data['color'][$k].",".$data['buttor'][$k];
$arr['hp_num']=$data['hp_num'][$k];
$arr['stock']=$data['stock'][$k];
$res[]=$arr;
}
print_r($res);
}
//hrml页面   循环输出数据
<center>
<tr>
<th>
商品名称:{$arr[0]['g_name']}
货物:{$arr[0]['hp_num']}
</th>
</tr>
<table>
<form action="{:url('login/add')}">
<input type="hidden" value="{$arr[0]['goods_id']}" name="goods_id"/>
<tr>
<td>颜色</td>
<td>内存</td>
<td>货号</td>
<td>库存</td>
<td>操作</td>
</tr>
{volist name="arr" id="vv"}
<tr>
<td>
<select name="color[]" id="color">
<?php foreach($color as $k =>$v){?>
<option value="<?php echo $v['a_id']?>"
<?php if($v['a_val']==$vv['attr'][0]){
echo "selected";
} ?>><?php echo $v['a_val'];?>
</option>
<?php }?>
</select>
</td>
<td>
<select name="buttor[]" id="buttor">
<?php foreach($buttor as $k =>$v){?>
<option value="<?php echo $v['a_id']?>"
<?php if($v['a_val']==$vv['attr'][0]){
echo "selected";
} ?>><?php echo $v['a_val'];?>
</option>
<?php }?>
</select>
</td>
<td><input type="text" value="{$vv['hp_num']}" name="hp_num[]"/></td>
<td><input type="text" value="{$vv['stock']}" name="stock[]"/></td>
<td><input type="button" value="+" class="jia"/></td>
</tr>
{/volist}
<tr>
<td><input type="submit" value="添加"/></td>
</tr>
</form>
</table>
</center> //jquery 界面 //加减号的改变
$(document).on('click','.jia',function(){
var obj=$(this).parents("tr").clone();
obj.find(".jia").attr('value','-');
obj.find(".jia").attr('class','jian');
$(this).parents("tr").after(obj);
}); $(document).on('click','.jian',function(){
$(this).parents("tr").remove();
});

---恢复内容结束---

//php页面
public function test(){
$id="1";
$data=Db::table('week3_goods')
->join("week3_hp","week3_goods.g_id=week3_hp.goods_id")
->join("week3_goods_attr","week3_hp.g_a_id=week3_goods_attr.g_a_id")
->where("week3_goods.g_id",$id)
->select();
//print_r($data);die;
foreach($data as $k =>$v){
if($v['a_id']){
$ids=explode(',',$v['a_id']);
foreach($ids as $kk =>$vv){
$res=Db::table('week3_attr')->where("a_id",$vv)->find();
$ids[$kk]=$res['a_val'];
$data[$k]['attr']=$ids;
}
}
}
$color=Db::table('week3_attr')->where("a_name",'颜色')->select();
$buttor=Db::table('week3_attr')->where("a_name","内存")->select();
return view("index",['color'=>$color,'buttor'=>$buttor,'arr'=>$data]);
} //添加数据
public function add(){
$data=Request::instance()->param();
foreach($data['color'] as $k =>$v){
$arr['goods_id']=$data['goods_id'];
$arr['attr']=$data['color'][$k].",".$data['buttor'][$k];
$arr['hp_num']=$data['hp_num'][$k];
$arr['stock']=$data['stock'][$k];
$res[]=$arr;
}
print_r($res);
}
//hrml页面   循环输出数据
<center>
<tr>
<th>
商品名称:{$arr[0]['g_name']}
货物:{$arr[0]['hp_num']}
</th>
</tr>
<table>
<form action="{:url('login/add')}">
<input type="hidden" value="{$arr[0]['goods_id']}" name="goods_id"/>
<tr>
<td>颜色</td>
<td>内存</td>
<td>货号</td>
<td>库存</td>
<td>操作</td>
</tr>
{volist name="arr" id="vv"}
<tr>
<td>
<select name="color[]" id="color">
<?php foreach($color as $k =>$v){?>
<option value="<?php echo $v['a_id']?>"
<?php if($v['a_val']==$vv['attr'][0]){
echo "selected";
} ?>><?php echo $v['a_val'];?>
</option>
<?php }?>
</select>
</td>
<td>
<select name="buttor[]" id="buttor">
<?php foreach($buttor as $k =>$v){?>
<option value="<?php echo $v['a_id']?>"
<?php if($v['a_val']==$vv['attr'][0]){
echo "selected";
} ?>><?php echo $v['a_val'];?>
</option>
<?php }?>
</select>
</td>
<td><input type="text" value="{$vv['hp_num']}" name="hp_num[]"/></td>
<td><input type="text" value="{$vv['stock']}" name="stock[]"/></td>
<td><input type="button" value="+" class="jia"/></td>
</tr>
{/volist}
<tr>
<td><input type="submit" value="添加"/></td>
</tr>
</form>
</table>
</center>

//jquery   界面

//加减号的改变
$(document).on('click','.jia',function(){
var obj=$(this).parents("tr").clone();
obj.find(".jia").attr('value','-');
obj.find(".jia").attr('class','jian');
$(this).parents("tr").after(obj);
}); $(document).on('click','.jian',function(){
$(this).parents("tr").remove();
});

sku 加减号的增删的更多相关文章

  1. velocity加减运算注意格式 ,加减号的左右都要有空格

    velocity加减运算注意格式 ,加减号的左右都要有空格 #set( $left= $!biz.value - $vMUtils.getReturnMoney($!biz.billBuy) )

  2. 加减号改变input[type=number]的数值,基于[zepto.js]

    通过点击加减号可以更改input的数值,样式如下图: 具体的html代码如下: <div class="xh-lxx-cart-count1"> <span cl ...

  3. Objective-C 中不带加减号的方法

    显而易见的事实是,Objective-C 中,+ 表示类方法,- 表示实例方法. 但看别人代码过程中,还会发现一种,不带加减号的方法. @implementation MyViewController ...

  4. 微信小程序组件 加减号弹出框

    <!-- 点击立即抢拼弹出框 --> <view class='add-rob' bindtap="setModalStatus" data-status=&qu ...

  5. 293. Flip Game只翻转一步的加减号翻转游戏

    [抄题]: You are playing the following Flip Game with your friend: Given a string that contains only th ...

  6. eclipse的包的加减号展开方式

    这是win7系统下面 导航树的风格 可能你不太习惯 一个最简单的方法: 桌面新建个 eclipse 快捷方式--->右键属性--->兼容性  勾上以兼容模式运行这个程序  

  7. 自己写的Ext树,Ext3.4,静态全部加载

    var load = function(){ /** * 书籍资料目录 */ var bookIT = new Ext.tree.TreeNode({ text:"IT", lea ...

  8. 去除input[type=number]最右边的spinners(默认加减符号)

    // 去掉input[type=number]默认的加减号 input[type='number'] { -moz-appearance:textfield; } input[type=number] ...

  9. Django lazy load 懒加载 倒序查询

    Django orm默认懒加载   Django orm默认使用的懒加载,即使用的时候才去访问数据库,且每次默认取最少的数据,当然这样有好处也有坏处... 坏处: 会导致频繁的查询数据库,如涉及到外键 ...

随机推荐

  1. js数组常用方法,含es5

    (1)基本的数组方法 1.join() Array.join()方法将数组中所有元素都转化为字符串并连接在一起,返回最后生成的字符串.可以自己指定分隔的符号,如果不指定,默认使用逗号 var arr ...

  2. C++使用thread类进行多线程编程

    C++11中引入了一个用于多线程操作的thread类,简单多线程示例: #include <iostream> #include <thread> #include <W ...

  3. HttpUrlConnection底层实现和关于java host绑定ip即时生效的设置及分析

    最近有个需求需要对于获取URL页面进行host绑定并且立即生效,在java里面实现可以用代理服务器来实现:因为在测试环境下可能需要通过绑定来访问测试环境的应用实现代码如下: public static ...

  4. Node内核基本自带模块fs 文件的读写

    在node的内核中存在一些内置的模块 这些是最基本的服务端所必要的 1:node全局环境:global类似于浏览器端的window 2:文件读取模块:fs fs模块同时提供了异步和同步的方法. 'us ...

  5. centos7安装tomcat8 新手入门 图文教程

    系统环境 操作系统:64位CentOS Linux release 7.2.1511 (Core) JDK版本:1.8.0_121 下载tomcat8压缩包 访问官网:http://tomcat.ap ...

  6. Python 模块(module)

    模块(module)也是为了同样的目的.在Python中,一个.py文件就构成一个模块.通过模块,你可以调用其它文件中的程序. first.py def laugh(): print "Ha ...

  7. Java的CountDownLatch和CyclicBarrier的理解和区别

    CountDownLatch和CyclicBarrier的功能看起来很相似,不易区分,有一种谜之的神秘.本文将通过通俗的例子并结合代码讲解两者的使用方法和区别. CountDownLatch和Cycl ...

  8. [qt]qstring和string中文支持转换问题

    QString str2qstr(const string str) { return QString::fromLocal8Bit(str.data()); } string qstr2str(co ...

  9. 使用padding值控制控件的隐藏与显示

    在学自定义控件下拉刷新这一案例,控制ListView头条目和尾条目的显示隐藏时,就是设置其padding值的正负控制其的显示与隐藏.这并不是什么很大的知识点.只是一个小技巧,这里给大家分享一下. 这一 ...

  10. JDK中关于BIO,NIO,AIO,同步,异步介绍

    在理解什么是BIO,NIO,AIO之前,我们首先需要了解什么是同步,异步,阻塞,非阻塞.假如我们现在要去银行取钱: 同步 : 自己亲自出马持银行卡到银行取钱(使用同步IO时,Java自己处理IO读写) ...