Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当我更新多个购物车项目时,Codeigniter说isset中的偏移类型非法或为空_Php_Codeigniter - Fatal编程技术网

Php 当我更新多个购物车项目时,Codeigniter说isset中的偏移类型非法或为空

Php 当我更新多个购物车项目时,Codeigniter说isset中的偏移类型非法或为空,php,codeigniter,Php,Codeigniter,我正在使用Codeigner购物车。我想用多个购物车项目更新我的购物车页面。 我将rowid和qty作为arry发送。 这是我的表格 <form action="<?php echo base_url();?>cart/update_cartpage" method="post" enctype="multipart/form-data"> <td class=" product-price"><span class=

我正在使用Codeigner购物车。我想用多个购物车项目更新我的购物车页面。 我将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>`

检查此代码:尝试使用
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\u combine()


希望这有帮助

为什么你的帖子上有
true
?尝试更改
$roid=$this->input->post('rowid',true)
$roid=$this->input->post('rowid')
我尝试了这个方法,但不起作用,而且您应该在if语句中使用
isset
来检查POST数据是否已提交。我认为empty不适合这样做,因为它读取
array
'isset'也不起作用。仅供参考:购物车库已弃用,不应使用。它目前仅为向后兼容而保留。因为它将产生同样的结果,所以我忘了把
$this->cart->update($data)放进去在循环内部。答案现在被编辑了。你能认为这是答案吗?非常感谢。
 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;       
  }
  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;       
  }