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

//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. 案例:8,64,256都是2的阶次方数(8是2的3次方),用Java编写程序来判断一个整数是不是2的阶次方数。

     如果一个数是2的阶次方数,则它的二进制数的首位一般是1,后面全为0.比如8:1000,64:1000000,如果将这个数减1后再作与&运算,则应该全为0,(x&(x-1)==0&am ...

  2. JavaScript 调试常见报错以及原因

    JavaScript 调试常见报错以及原因 测试环境 chrome 版本 66.0.3359.170(正式版本) (64 位) TypeError 类型错误 不是操作符所接受的数据类型. //---- ...

  3. HDU 5985 Lucky Coins(概率)

    http://acm.split.hdu.edu.cn/showproblem.php?pid=5985 题意:有多种类型的硬币,每种类型的硬币都有一定的数量,现在每次抛硬币,除去朝下的硬币,知道最后 ...

  4. codeforces gym 100947 J. Killing everything dp+二分

    J. Killing everything time limit per test 4 seconds memory limit per test 64 megabytes input standar ...

  5. Codeforces Round #420 (Div. 2) E. Okabe and El Psy Kongroo 矩阵快速幂优化dp

    E. Okabe and El Psy Kongroo time limit per test 2 seconds memory limit per test 256 megabytes input ...

  6. linux du

    命令参数: -a或-all  显示目录中个别文件的大小. -b或-bytes  显示目录或文件大小时,以byte为单位. -c或--total  除了显示个别目录或文件的大小外,同时也显示所有目录或文 ...

  7. cookie的常用操作

    cookie介绍: 1. cookie的简单介绍就是把用户的登录信息缓存在本机的浏览器中,且最大容量为4KB, 2. 这种存储是不安全的,通常一般会进行加密处理,但是依旧不能做到安全,所以一般要优先考 ...

  8. R语言多层绘图

    #########################################################第一种实现方法close.screen(all.screens = T)split.s ...

  9. 使用Qss设置QT程序界面的样式和皮肤

    1         使用Qss设置QT程序界面的样式和皮肤 1.1  Qss的功能 Qt程序界面中控件的背景图片.大小.字体颜色.字体类型.按钮状态变化等属性可以通过Qss文件来设置,美化UI界面.实 ...

  10. 00-python-内置函数笔记

    01.enumerate()函数用于将一个可遍历的数据对象(如 列表.元组或字符串)组合为一个索引序列,同时列出数据和数据包下标,一般用在for循环中 for i, element in enumer ...