¿Cómo hacer una llamada ajax en yii2?

En yii versión 1.14 utilizamos

CHtml :: ajaxlink

para ajax llamada ¿qué tal en yii2?

Puedes hacer un enlace ajax como

Html::a('Your Link name','controller/action', [ 'title' => Yii::t('yii', 'Close'), 'onclick'=>"$('#close').dialog('open');//for jui dialog in my page $.ajax({ type :'POST', cache : false, url : 'controller/action', success : function(response) { $('#close').html(response); } });return false;", ]); 

De: http://www.yiiframework.com/wiki/665/overcoming-removal-of-client-helpers-eg-ajaxlink-and-clientscript-in-yii-2-0/

Puede crear y combinar fácilmente todos los asistentes de cliente para su necesidad en archivos JS separados. Use la nueva funcionalidad de AssetBundle y AssetManager con el objeto View en Yii2, para administrar estos activos y cómo se cargan.

Alternativamente, los activos en línea (JS / CSS) se pueden registrar en tiempo de ejecución desde la Vista. Por ejemplo, puedes simular claramente la característica ajaxLink usando un javascript en línea. Sin embargo, se recomienda si puede fusionar, cuando sea posible, el código del cliente (JS / CSS) en archivos JS / CSS separados y cargarlos a través del AssetBundle. Tenga en cuenta que ya no hay necesidad de un CClientScript:

 $script = <<< JS $('#el').on('click', function(e) { $.ajax({ url: '/path/to/action', data: {id: '', 'other': ''}, success: function(data) { // process data } }); }); JS; $this->registerJs($script, $position); // where $position can be View::POS_READY (the default), // or View::POS_HEAD, View::POS_BEGIN, View::POS_END 
 $.get( "' . Url::toRoute('controller/action') . '", { item: $("#idoffield").val()} ) /* to send the parameter to controller*/ .done(function( data ) { $( "#lists" ).html( data ); }) 

y dar ID de listas para div

 

para más información, visita https://youtu.be/it5oNLDNU44