Php 当我更新多个购物车项目时,Codeigniter说isset中的偏移类型非法或为空
我正在使用Codeigner购物车。我想用多个购物车项目更新我的购物车页面。 我将rowid和qty作为arry发送。 这是我的表格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=
<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;
}