首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在一次提交中更新所有基于会话的输入表单数据?

如何在一次提交中更新所有基于会话的输入表单数据?
EN

Stack Overflow用户
提问于 2012-01-12 22:43:29
回答 1查看 227关注 0票数 0

我有一个购物车页面,其中,它显示了产品+价格和它们的数量现在我的问题是,我不知道如何使项目总数和价格更新,一旦我输入不同的数量和点击更新按钮

下面是我的函数,它根据$_SESSION数据“列出”产品

代码语言:javascript
复制
public function getCartListings(){
 if (is_array($_SESSION['cart'])){
    foreach($_SESSION['cart'] as $id => $qty){
      $query = "SELECT * FROM gg_t_wsproducts WHERE ProductID = $id";
      $result = mysql_query($query);
      if (!$result){
        echo "Couldn't execute query: ".mysql_error();
        exit;
      }
      $product = $this->getProduct($id);

        echo '<div class="cart-content">
                <table width="100%" cellpadding="0" cellspacing="0" border="0">
                    <tbody>
                        <tr>
                            <td width="20%" align="center" style="vertical-align:top !important;">
                                <img src="images/shopping-cart/thumb-image.png" />
                            </td>
                            <td width="80%" style="vertical-align:top !important;">
                                <table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-bottom:2px solid #c6c6c6; padding-bottom:10px">
                                    <tbody>
                                        <tr>
                                            <td width="60%"><b style="font-size:18px">'.$product["ProductName"].'</b></td>
                                            <td width="20%">Qty &nbsp;&nbsp;<input id="proditem"  name="'.$id.'" type="text" style="width:20px; margin:0 0 0 4px;" value="'.$qty.'"></td>
                                            <td width="20%"><span style="font-size:24px; font-weight:bold;">$'.number_format($product['ProductOverridePrice'],2).'</span></td>
                                        </tr>
                                    </tbody>
                                </table>
                                <table width="100%" cellpadding="0" cellspacing="0" border="0">
                                    <tbody>
                                        <tr>
                                            <td width="50%" valign="bottom" align="left"><br>
                                                <span style="font-size:18px; font-weight:bold;">$'.number_format($product['ProductOverridePrice'],2).'</span><br>
                                                <img src="images/shopping-cart/star.png" />&nbsp;&nbsp;<img src="images/shopping-cart/star.png" />&nbsp;&nbsp;<img src="images/shopping-cart/star.png" />&nbsp;&nbsp;<img src="images/shopping-cart/star.png" />&nbsp;&nbsp;<img src="images/shopping-cart/star.png" /><br>
                                                <span style="font-size:12px; color:#828282;">14 reviews</span>
                                            </td>
                                            <td width="50%" valign="bottom" align="right">
                                                <a class="removefromcart" name="'.$id.'" id="'.$qty.'" href="#"><img src="images/shopping-cart/remove-item-btn.png" border="0" /></a>
                                            </td>
                                        </tr>
                                    </tbody>
                                </table>
                            </td>
                        </tr>
                    </tbody>
                </table>
            </div>';

    }//end foreach
  }

}

正如您在上面看到的,这些项来自foreach循环

以下是显示实际项目的前端代码

代码语言:javascript
复制
    <div id="catalog-wrapper">
        <form action="#" method="POST" id="updatecart">
        <h1 class="cart-header">ITEMS IN YOUR CART <span style="float:right"><a href="#"><input type="image" name="updatecart" src="images/shopping-cart/update-cart-btn.png" border="0" /></a>&nbsp;&nbsp;<a href="catalog.php"><img style="float:right;" src="images/shopping-cart/continue-shopping-btn.png" border="0" /></a></span></h1>
        <?php $myCart->getCartListings(); ?>
        </form>
    </div>

现在,这是我的“无用”jquery代码

代码语言:javascript
复制
   $('input[name="updatecart"]').click(function(){
      var pid = $('input#proditem').attr('id');
      var qty2 = $('input[type="text"]').each(function(idx,elem){
       });
      $.ajax({
        type: "POST",
        url: "classes/ajax.cartupdate.php",
        data: "pid="+pid+"&qty2="+qty2,
        success: function(data){
          alert(data);
          location.reload();
        }
      });
      return false;
   });

ajax PHP代码应该类似于this...but我仍然对这些代码有问题,我真的很确定该怎么做

代码语言:javascript
复制
if ($qty2){
  $cart->updateCart($qty2);
  $_SESSION['total_items'] = $cart->totalItems($_SESSION['cart']);
  $_SESSION['total_price'] = $cart->totalPrice($_SESSION['cart']);
  echo "cartUpdated!";
}
EN

回答 1

Stack Overflow用户

发布于 2012-01-12 23:13:10

为什么你会得到多个变量?只需获取一个数组并在服务器端使用PHP分解它即可。我的意思是,创建一个javascript数组并包含其中的每个输入值,然后将其发送到PHP。但是在你的代码中会有两个数组,没有问题。它应该是这样的:

代码语言:javascript
复制
pid="1,2,3,4,5,6,7"+&qtty="0,1,1,0,1,1,0"

用PHP获取这个值,并将它们分解为",“,然后使用for循环做任何你想做的事情。顺便问一下,如果要在发送后重新加载页面,那么为什么要使用ajax方法呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8836898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档