<tbody>
<form action="{$config.url}index.php/Index/cart" name="form" id="form">
<tr>
<td><span class="img_1 img1"> <b>{$goods.goods_name}<span class="img_1_h"><img src="{$config.url}{$goods.goods_litpic}" /></span></b> </span> </td>
<td>{$goods.goods_color}</td>
<td>{$goods.goods_price}</td>
<td align="center"><input type="text" name="goods_num{$i}" id="textfield49" value="{$goods.num}"/></td>
<td>¥17,800</td>
<td><a href="{$config.url}index.php/Index/moveout?id={$i}">删除</a> <a href="#">移到收藏</a></td>
</tr>
</volist>
</tbody>
</table>
<div class="text">
金额小计: {$price}元 <a href="{$config.url}index.php/Index/moveout?type=all" style="margin-left:290px">清空</a> <a href="javascript:form.submit();">更新</a> <a href="{$config.url}index.php/Index/index" style="margin-left:400px">继续</a>
<a href="{$config.url}index.php/Index/order">结算</a>
</div>
</form>
action部分:
function cart(){
if($_SESSION["goods"]==""){
alert("购物车为空,请添加花卉后查看!");
back();
}else{
$sum = 0;
for($i=0;$i<count($_SESSION["goods"]);$i++ )
{
$k = $i+1; //更改购物车商品数量
$j = "goods_num".$k;
if ($_REQUEST["$j"]==""){}else{
$_SESSION["goods"]["$i"]["num"] = $_REQUEST["$j"];}
$sum += $_SESSION["goods"][$i][goods_price]*$_SESSION["goods"][$i][num];
$_SESSION["goods"][$i]["i"] = $i;
}
$this->assign("price",$sum);
$this->assign("num",count($_SESSION["goods"]));
$this->assign("goodsCar",$_SESSION["goods"]);
$this->assign("id",$_SESSION["goods"][$i]["i"]);
//print_r($_SESSION["goods"]);
//alert($_SESSION["goods"]["0"]["num"]);
$this->display();}
}
上面是我写的一段关于修改购物车商品数量的代码,基于ThinkPHP框架。在调试过程中发现提交表单之后以$_REQUEST怎么都接收不到数据。让我感到很是奇怪。经过一步步的调试之后终于发现了问题所在~ 关键就在于form表单与某些标签不能交叉。上面的代码中form与tbody发生了交叉导致了表单传值失败!供参考借鉴~