2010-09-16 57 views
0

我是Yii框架中的新手,并开始学习小型网站项目,所以我被困在这个位置上如何解决它。Yii框架....计算飞行总量

我有一个'Order_form',其中用户已确认他的订单,如果要更改'数量',所以只有这可以改变,然后执行此操作我需要更改总计值计算飞行上相同的形式if数量已被用户更改。

beginWidget( 'CActiveForm',阵列( 'ID'=> '订单表格', 'enableAjaxValidation'=>假, )); ?>
<div class="row"> 
     <?php echo $form->labelEx($model,'price'); ?> 
     <?php echo $model->price; ?> 
</div> 

<div class="row"> 
     <?php echo $form->labelEx($model,'qty'); ?> 
     <?php echo $form->textField($model,'qty'); ?> 
     <?php echo $form->error($model,'qty'); ?> 
</div> 

<div class="row"> 
     <?php echo $form->labelEx($model,'total'); ?> 
     <?php echo $form->textField($model,'total'); ?> 
</div> 

endWidget(); ?>

$(文件)。就绪(函数(){ VAR myVar的= '999'; $( “#model_total”)VAL(myVar的); }); '

在这里我更新了我的脚本以阐明我需要什么,所以在这里我试图在同一个窗体上将'999'的值传递给'Total',但这不起作用。这可能是我错过了/做错了什么。

我也想用其他方式来计算数量x价格并从控制器得到结果,如果可能的话,请通过代码引导。

+0

“即时”是指您希望总数通过JavaScript进行更新,无需重新加载页面?此外,你从来没有澄清你最近的Yii问题,这也是模棱两可的。如果你问得更好,更具体的问题你可能会得到更多,更好的答案。 – thaddeusmt 2010-09-16 15:48:23

+0

有没有什么办法做控制器/模型中的计算,如果没有,那么将使用JavaScript ..........为javascrip我试着这个,但没有工作......... Khan 2010-09-16 16:27:21

回答

0

你有JS可能不工作的一个原因是:你是否确定“总”字段ID是“model_total”?通常它就像“Order_total”。看看你的html源代码来验证(Firebug帮助)。

无论如何,其他一些建议:

一种常见的方式来解决这个订单总量的问题是“更新购物车”按钮,该职位的形式回哪里订单总额计算控制器,然后页面新总数再次呈现。

另一种方式做,这将是建立一个的onblur现场()(或代表)听众,做两件事情之一(类似于您正试图):

(1)发表形式到总量重新计算的控制器。像这样(未经):

$("#order-form #Order_qty").live('blur',function() { 
    $.ajax({ 
    'type':'POST', 
    'data':$('#order-form').serialize(), 
    'success':function(data){$('#Order_total').val(data)} 
    });} 
); 

你需要有东西在你这样的控制器操作:

if(isset($_POST['ajax']) && $_POST['ajax']==='order-form' && isset($_POST['Order'])) { 
    // calculate new total based on the $_POST Model_qty field 
    echo $new_total; 
    Yii::app()->end(); 
} 

(2)你可以这样做完全在JS的计算,并更新它像你现在正在尝试做。只要记住,你不能以这种方式更新数据库中的订单数量,因为你没有触及控制器。

$("#order-form #Order_qty").live('blur',function() { 
    $('#Order_total').val($('#Order_price').val() * $('#Order_qty').val()); 
}); 
+0

嗨thaddeusmt,感谢您的回复,特别是解决方案,但我也在Yii论坛上找到Ajax的解决方案。我真的很感激你的上述代码的时间。祝你有美好的一天。 – Khan 2010-09-17 15:22:38