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>

thinkphp同一张表中更新多条数据_第1张图片

样式如图,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"));
	})
})


你可能感兴趣的:(thinkphp同一张表中更新多条数据)