web-dev-qa-db-ja.com

yii2でajaxを呼び出す方法は?

yiiバージョン1.14で使用しました

CHtml :: ajaxlink

ajax呼び出しの場合、yii2ではどうですか?

8
mohi

あなたはのようなajaxリンクを作ることができます

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

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

必要に応じて、このようなクライアントヘルパーをすべて簡単に作成し、個別のJSファイルに結合できます。 Yii2のViewオブジェクトで新しいAssetBundleおよびAssetManager機能を使用して、これらのアセットとそれらのロード方法を管理します。

または、インラインアセット(JS/CSS)を実行時にビュー内から登録できます。たとえば、インラインJavaScriptを使用してajaxLink機能を明確にシミュレートできます。ただし、可能であれば、クライアントコード(JS/CSS)を個別のJS/CSSファイルにマージし、AssetBundleを介してロードできる場合に推奨されます。 CClientScriptはもう必要ありません。

$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 );
                                    }) 

divのリストIDを与える

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

詳細については https://youtu.be/it5oNLDNU44

0
user7699448