【问题标题】:How to make ajax call in yii2?如何在yii2中进行ajax调用?
【发布时间】:2017-03-24 17:33:31
【问题描述】:

在 yii 1.14 版本中我们使用了

CHtml::ajaxlink

对于 ajax 调用在 yii2 中呢?

【问题讨论】:

  • 以下答案是否需要 csrf 令牌?
  • Here 是一个例子

标签: php yii2


【解决方案1】:

你可以做一个像这样的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;",
                ]);

【讨论】:

  • 感谢 Dancy GB 和 NinjaCat 的回答,但我在使用 jQuery.ajax({ url: '../product/openfancybox', data: {id: quan} ,成功:函数(数据){警报(数据);}});
【解决方案2】:

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

您可以轻松地为您的 需要放入单独的 JS 文件中。使用新的 AssetBundle 和 AssetManager Yii2 中 View 对象的功能,用于管理这些资产和 它们是如何加载的。

或者,内联资产 (JS/CSS) 可以在运行时注册 从视图中。例如,您可以清楚地模拟 ajaxLink 功能使用内联 javascript。但是,如果 您可以在可能的情况下将客户端代码 (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

【讨论】:

    【解决方案3】:
    $.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

    【讨论】:

      【解决方案4】:
      <?=yii\helpers\Url::toRoute("site/signup")?>
      

      【讨论】:

      • 虽然这段代码可以回答这个问题,但最好包含一些上下文,解释它是如何工作的以及何时使用它。从长远来看,纯代码的答案没有用处。
      • 好吧,它根本没有回答这个问题。
      猜你喜欢
      • 2017-08-15
      • 2012-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多