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 条件的批量更新
使用多个 WHERE 子句更新 Codeigniter 中的批处理