2014-06-13 6 views
7

Dans la version 1.14, nous avons utilisé yuComment faire un appel ajax en yii2?

CHtml :: ajaxlink

pour l'appel ajax Qu'en est-il yii2?

+1

Un jeton csrf est-il requis dans les réponses suivantes? – Kshitiz

+0

[ici] (http://www.yiiplayground.com/yii2/web/index.php?r=ajax/index) est un exemple – Abylay

Répondre

16

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;", 
       ]); 
+0

Merci Dancy GB et NinjaCat pour votre réponse, mais je reçois une erreur de serveur interne lors de l'utilisation jQuery.ajax ({\t \t \t \t \t url: '../product/openfancybox', données: {id: quan}, succès: function (données) { alerte (données); }} ) – mohi

+0

J'ai corrigé le problème – mohi

+1

Merci Cela fonctionne pour moi :) –

6

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 toutes ces aides clients pour votre besoin dans des fichiers JS séparés. Utilisez les nouvelles fonctionnalités AssetBundle et AssetManager avec l'objet View dans Yii2, pour gérer ces ressources et comment elles sont chargées.

Vous pouvez également enregistrer des actifs en ligne (JS/CSS) au moment de l'exécution à partir de la vue. Par exemple, vous pouvez simuler clairement la fonction ajaxLink en utilisant un javascript en ligne. Il est cependant recommandé si vous pouvez fusionner, si possible, le code client (JS/CSS) dans des fichiers JS/CSS distincts et chargés à travers le AssetBundle. A noter qu'il n'y a pas plus 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 
-2
<?=yii\helpers\Url::toRoute("site/signup")?> 
+0

Alors que ce code peut répondre à la question, il serait préférable d'inclure un peu de contexte, expliquant comment cela fonctionne et quand l'utiliser. Les réponses au code uniquement ne sont pas utiles à long terme. – Bono

0
$.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

Questions connexes