我真的需要大力帮助。 我有一个表格,在那个表格中客户可以选择国家和文件类型,并且有添加到购物车按钮。
因此,当客户选择他需要的所有内容时,所有参数都会像这样发送到会话中(这是在控制器中):
$quantity = 1; //this is default quantity for all documents
if(isset($_POST['cartBtn'])) {
if(!isset(Yii::app()->session['cart_values'])) {
Yii::app()->session['cart_values'] = array();
}
$sessionCart = Yii::app()->session['cart_values'];
$productInfo = Product::model()->find('id=:id',(array(':id'=>$_POST['documents'])));
$sessionCart[] = array('product_id' => $_POST['documents'], 'document' => $productInfo->name, 'countries'=>$_POST['countries'], 'quantity'=> $quantity, 'price' => $unitCost);
Yii::app()->session['cart_values'] = $sessionCart;
$this->redirect(array($this->id."/cart"));
}
提交表单后,客户端被重定向到购物车表格,在此表格中,他可以更新文件数量。 现在我必须确定客户端选择更新的列。
我尝试在控制器中执行此操作(在购物车操作下):
public function actionCart()
{
if(isset($_POST['cartBtnUpdate'])) {
$sessionCart['quantity'] = $_POST['quantity'];
}
$this->render('cart');
}
但是当我这样做时没有发生任何事情,价值是1,我输入2或3提交表格,但价值是1.
此外,如果有人点击复选框并提交表单,我想删除该字段,但我不知道如何选择所有会话行来删除它。
感谢。
购物车视图中的表单代码:
<?php
if (is_array(Yii::app()->session['cart_values']))
{
$total = 0;
foreach ( Yii::app()->session['cart_values'] as $value) {
$total += $value['price'];
?>
<tr id="TDcartTable">
<td class="docName">
<?php echo $value['document'] ?>
</td>
<td>
£ <?php echo number_format($value['price'], 2); ?>
</td>
<td>
<?php echo CHtml::textField('quantity', $value['quantity']); ?>
</td>
<td>
£ <?php echo number_format(($value['price'] * $value['quantity']), 2);
?>
</td>
<?php }
}
?>
<td>
</td>
</tr>
<tr>
<td class="column-last" colspan="6">
</td>
</tr>
<tr>
<td class="cart-order-total" colspan="6">
<?php echo CHtml::encode(Yii::t('app', 'Order Total')); ?>: £ <?php echo number_format($total, 2); ?>
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" class="button" name="cartBtnUpdate" value="<?php echo CHtml::encode(Yii::t('app', 'Update Your Shopping Cart')); ?>">
</td>
<td colspan="4">
<input type="submit" class="button" name="cartBtnContinue" value="<?php echo CHtml::encode(Yii::t('app', 'Continue')); ?>">
</td>
</tr>
答案 0 :(得分:1)
在尝试使用变量$sessionCart
之前,未在控制器操作中定义变量if (isset($_POST['cartBtnUpdate'])) {
$sessionCart = Yii::app()->session['cart_values'];
$sessionCart['quantity'] = $_POST['quantity'];
}
。你需要定义它:
{{1}}