2014-06-13 3 views
7

In Yii versione 1.14 abbiamo usatoCome effettuare una chiamata ajax in yii2?

cHTML :: ajaxlink

per chiamata AJAX per quanto riguarda in yii2?

+1

È richiesto token csrf nelle seguenti risposte? – Kshitiz

+0

[Qui] (http://www.yiiplayground.com/yii2/web/index.php?r=ajax/index) è un esempio – Abylay

risposta

16

È possibile effettuare un collegamento ajax come

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

Grazie Dancy GB e NinjaCat per la risposta, ma ricevo un errore interno del server quando si utilizza jQuery.ajax ({\t \t \t \t \t url: '../product/openfancybox', dati: {id: quan}, successo: la funzione (i dati) {alert (dati); }} ); – mohi

+0

Ho risolto il problema – mohi

+1

Grazie Sta funzionando per me :) –

6

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

Si può facilmente creare e combinare tutti questi aiutanti client per il vostro bisogno in file JS separati. Utilizzare la nuova funzionalità AssetBundle e AssetManager con l'oggetto View in Yii2, per gestire queste risorse e come vengono caricate.

In alternativa, le risorse in linea (JS/CSS) possono essere registrate a runtime dall'interno della visualizzazione. Ad esempio è possibile simulare in modo chiaro la funzione ajaxLink utilizzando un javascript in linea. È tuttavia consigliato se è possibile unire dove possibile, codice client (JS/CSS) in separati file JS/CSS e caricati tramite AssetBundle. Nota non c'è più bisogno di un CClientScript più:

$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

Mentre questo codice può rispondere alla domanda, sarebbe meglio includere un contesto, spiegando come funziona e quando usarlo. Le risposte al solo codice non sono utili a lungo termine. – Bono

0
$.get("' . Url::toRoute('controller/action') . '", { item: $("#idoffield").val()}) /* to send the parameter to controller*/ 
         .done(function(data) 
          { 
           $("#lists").html(data); 
            }) 

e dare liste ID per div

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

per ulteriori visite https://youtu.be/it5oNLDNU44