thinkphp同一张表中更新多条数据

最近做项目用到的thinkphp框架遇到了同时更新多条数据的问题,查看了下文档,对比网上前辈的代码,现在整理一下,以便留存。

<html>
 <head></head>
 <table class="table table-bordered gtable">
    <thead>
	<tr>
	    <th>属性值</th>
	    <th>颜色</th>
	    <th>市场价</th>
	    <th>本店价</th>
	    <th>库存</th>
	    <th class="addonce">新增一行</th>
	</tr>
    </thead>
     <input type="hidden" id="linenum" name="trnum" value="{$trcount}"><!--该值为从数据库中传过来一共有    多少条数据,用select count(*) from tablename 方法 在控制器中for循环更新会用到-->
     <tbody id="detailtable" > 
        <foreach name="pdata" item="vo">
            <tr>
                <input type="hidden" name="pid" value="{$vo.pid}">
                <input type="hidden" name="goodeid[]" value="{$vo.id}">
                <td><input type="text" name="val[]" value="{$vo.val}" ></td>
                <td><input type="text" name="color[]" value="{$vo.color}"></td>
                <td><input type="text" name="price[]" value="{$vo.price}"></td>
                <td><input type="text" name="sales_price[]" value="{$vo.sales_price}"></td>
                <td><input type="text" name="stock[]" value="{$vo.stock}"></td>
                <td class="deltr" id="toDel">删除本行</td>
             </tr>
         </foreach>
     </tbody>
   </table>
</html>

234509_P24k_567244.jpg

样式如图,css代码就不贴了。下面是控制器中接收html代码中的控制器中方法。

$goodscolor = M('goodscolor');
$trcnt = I('post.trnum');
for($i = 0;$i<$trcnt;$i++){
        $goodscolor->id = intval($_POST['goodeid'][$i]);
	$goodscolor->color = $_POST['color'][$i];
	$goodscolor->price = $_POST['price'][$i];
	$goodscolor->sales_price = $_POST['sales_price'][$i];
	$goodscolor->stock = intval($_POST['stock'][$i]);
	$goodscolor->val = $_POST['val'][$i];
	$goodscolor->discount = round(($goodscolor->sales_price)/($goodscolor->price)*10,2);
	$goodscolor->save();
}

以上为thinkphp更新多条数据方法,其中表格中“增加一行”和“删除本行”通过jquery实现页面效果,代码如下(可看可不看),但是数据并没有更新。等写完该ajax再上传。jquery代码如下

$(function(){
	
	$(".addonce").click(function(){
		$("#detailtable:last").append('<tr><td><input type="text" name="val[]" value=""><td><input type="text" name="color[]" value=""><td><input type="text" name="price[]" value=""><td><input type="text" name="sales_price[]" value=""><td><input type="text" name="stock[]" value=""><td class="deltr" id="toDel" >删除本行</td></tr>');
		var tr = Number($("#linenum").attr("value"));
		var newtr = tr+1;
		
		$("#linenum").attr("value",newtr);
		//alert($("#linenum").attr("value"));
	});
	$("table").delegate(".deltr","click",function(){
		$(this).parent().fadeOut(500, function(){  
			$(this).empty();
		});
		var tr = Number($("#linenum").attr("value"));
		var newtr = tr-1;
		$("#linenum").attr("value",newtr);
		//alert($("#linenum").attr("value"));
	})
})


转载于:https://my.oschina.net/u/567244/blog/537615

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值