web-dev-qa-db-fra.com

Comment faire un appel ajax dans yii2?

Dans la version 1.14 nous avons utilisé 

CHtml :: ajaxlink

pour appel ajax qu'en est-il dans yii2?

8
mohi

Vous pouvez faire un lien ajax comme

 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;",
                ]);
18
Dency G B

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

Vous pouvez facilement créer et combiner tous ces assistants clients pour votre besoin dans des fichiers JS séparés. Utilisez les nouveaux AssetBundle et AssetManager fonctionnalité avec l'objet View dans Yii2, pour gérer ces actifs et comment ils sont chargés.

Sinon, les ressources en ligne (JS/CSS) peuvent être enregistrées au moment de l'exécution de l'intérieur de la vue. Par exemple, vous pouvez clairement simuler le Fonction ajaxLink utilisant un javascript intégré. Son cependant recommandé si vous pouvez fusionner autant que possible le code client (JS/CSS) en un fichier .__ séparé. Fichiers JS/CSS et chargés via AssetBundle. Notez qu'il n'y a plus de besoin d'un CClientScript plus:

$script = <<< JS
$('#el').on('click', function(e) {
    $.ajax({
       url: '/path/to/action',
       data: {id: '<id>', 'other': '<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
10
NinjaCat
$.get( "' . Url::toRoute('controller/action') . '", { item: $("#idoffield").val()} ) /* to send the parameter to controller*/
                        .done(function( data )
                            {
                                 $( "#lists" ).html( data );
                                    }) 

et donner des listes id pour div

<div id="lists"></div>

pour plus de visite https://youtu.be/it5oNLDNU44

0
user7699448