1. AJAX ссылка, компонент ajaxLink:
echo CHtml::ajaxLink(
'Link ajax',
CController::createUrl('site/ajax'),
array(
'type' => 'POST',
'data' => array('id' => $somedata),
'update' => '#updatespan')
);
Формируется ссылка и при нажатии вызывается метод контроллера site/ajax. Можно задавать как GET так и POST запросы и в data прописывать нужные переменные для отправки.
update указывает в какой блок будет загружен ответ от контроллера.
2. POST отправка формы и обработка логики [просто пример отправки запроса при нажатии клавиши и обработка JSON результата ]
jQuery(function ($) {
$('#order').on('keyup', function () {
var amount_in = $('#order').val();
var cur_in = 1;
var cur_out = 2;
$.ajax({
url: "site/calculate",
type: "GET",
dataType: "json",
data: {amount: amount_in , curin: cur_in, curout: cur_out},
timeout: 8000,
success: function(res){
$('#Order_amount_out').val(res.amount_out);
$('#exrate').html(res.excahngeRate);
},
error : function (xhr, status) {
alert('Calculate Error, please try again later...');
}
});
});
});
3. AJAX Submit Button — отправка формы по AJAX, обработка событий before send , success.
echo CHtml::ajaxSubmitButton('Отправить', '',
array(
'type' => 'POST',
'update' => '#output2',
'beforeSend'=>'js:function(){
$("#output2").html("Загрузка...");
',
'success'=>'js:function(data){
$("#output2").html(data);
}',
),
array(
'class' => 'btn btn-theme triggerAnimation animated',
'data-animate' => 'bounceIn'
)
);