Codeigniter Say更新多个购物车项目时,isset或空的非法偏移类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeigniter Say更新多个购物车项目时,isset或空的非法偏移类型相关的知识,希望对你有一定的参考价值。

我正在使用codeigniter cart.I想用多个购物车项目更新我的购物车页面。我发送了rowid和qty作为arry。这是我的表格

<form action="<?php echo base_url();?>cart/update_cartpage" method="post" enctype="multipart/form-data">
                  <td class=" product-price"><span class="amount"><span class="money"><?php echo $values['price'];?></span></span>
                    <input type="text" value="<?php echo $values['rowid']?>" name="rowid[]" ></td>  
                  <td><span>
                  <div class=" cart-plus-minus cart_page">   

                    <div class="dec qtybutton ">-</div>    
                    <input type="text" value="<?php echo $values['qty'];?>"  name="qty[]"  id="qty" class="qty minhaj_update test">
                    <div class="inc qtybutton " >+</div>                        
                    </div></span>                       
                  </td>
                  <td class=" product-subtotal"><span class="money" data-currency-usd="<?php echo $values['subtotal'];?>"><?php echo $values['subtotal'];?></span></td>
                  <td class=" product-remove cartrmove" data-id="<?php echo $values['rowid']?>"><a href="javascript:void(0);" ><i class="fa fa-times" aria-hidden="true" ></i></a></td>
                </tr>
                <?php $i++; } ;?>
              </tbody>
            </table>
          </div>              
          <div class="row table-responsive_bottom">                
            <div class="col-lg-7 col-sm-7 col-md-7">
              <div class="buttons-carts">
                 <input class="theme-default-button" type="submit" value="Update Cart">                  
                 <a href="<?=base_url();?>">Continue Shopping</a> 
</div></form>`

这是我的控制器

    public function update_cartpage()
   {


  $roids=$this->input->post('rowid',true);
 $gty=$this->input->post('qty',true);


 if (!empty($roids)) {

  $data = array(
              'rowid' => $roids,
               'qty'     => $gty
            );


  /*  print_r($data);
  exit; */ 
  $this->cart->update($data);
 } else{
     echo "sorry";
     exit;       
 }
答案

检查此代码:尝试使用foreach循环将数据转换为数组变量。

您可以删除发布数据中的true

 public function update_cartpage()
   {

      $roids=$this->input->post('rowid');
      $gty=$this->input->post('qty');

 if (!empty($roids)) {

   foreach($roids as $index=> $val ) {
      $data = array(
              'rowid' => $val ,
               'qty'    => $gty[$index]
            );

       $this->cart->update($data);
     }




  } else{
     echo "sorry";
     exit;       
  }

或者您可以使用array_combine()

  public function update_cartpage()
   {

      $roids=$this->input->post('rowid');
      $gty=$this->input->post('qty');

 if (!empty($roids)) {

   foreach(array_combine($roids, $qty) as $roid=> $qty) {
      $data = array(
              'rowid' => $roid,
               'qty'    => $qty
            );

      $this->cart->update($data);
     }



  } else{
     echo "sorry";
     exit;       
  }

希望这可以帮助!

以上是关于Codeigniter Say更新多个购物车项目时,isset或空的非法偏移类型的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter - 具有多个 Where 条件的批量更新

codeigniter中的多个批量更新不起作用

是否可以在实体框架中将表FK链接到另外两个PK?

使用多个 WHERE 子句更新 Codeigniter 中的批处理

如何在 codeigniter 代码中使用两个或多个存储过程?

使用多个项目创建付款时如何从请求中读取项目?