Одна из причин, по которой у вас может не работать JS, заключается в следующем: вы УВЕРЕНЫ, что ИД поля "total" равен "model_total"?Обычно это что-то вроде "Order_total".Посмотрите на ваш источник HTML для проверки (Firebug помогает).
В любом случае, есть и другие предложения:
Распространенным способом решения этой общей проблемы заказа является кнопка «Обновить корзину», которая выдает POSTобратно в контроллер, где вычисляется общая сумма заказа, а затем страница отображается снова с новым итогом.
Еще один способ сделать это - настроить прослушиватель onBlur live () (или делегат), которыйвыполняет одно из двух действий (аналогично тому, что вы пытаетесь сейчас):
(1) POST-форма в контроллере, где пересчитывается общее количество.Примерно так (не проверено):
$("#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,и обновить его, как вы пытаетесь сделать сейчас.Просто помните, что вы не можете обновить порядок qty в базе данных таким образом, если вы не попали в контроллер.
$("#order-form #Order_qty").live('blur',function() {
$('#Order_total').val($('#Order_price').val() * $('#Order_qty').val());
});