2010-09-16 56 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