【问题标题】:base Url in ajax to call controller action in Yii passing parametersajax中的base Url在Yii中调用控制器动作传递参数
【发布时间】:2014-03-20 17:54:52
【问题描述】:

我的 js 外部脚本包含以下代码

$(document).ready(function() {

        $('[id^="comment"]').click(function(e) {

            $(this).prop('disabled', true);

            if ($(this).val() == 'Save') {
                var $thisClicked = $(this);
                $.ajax({

                    type: "POST",
                    url:"/comment/create/",   

                    success: function(data) {
                        $thisClicked.after(data);
                        $(".form").slideDown(200);
                    }                          
                });
            } else {
                var $thisClicked = $(this);
                $.ajax({
                    type: "POST",
                    url:"/comment/delete/",
                    success: function(data) {
                        $thisClicked.prop('disabled', false);
                    }
                });
            }
        });
});

我的问题是我应该使用什么变量来指向 Yii 中的正确目录以及如何传递变量。

我试图做相当于

url: "<?php echo Yii::app()->createUrl('comment/create', array('post_id' => $data['id'], 'user_id'=> Yii::app()->user->id)); ?>",

感谢您的帮助。

【问题讨论】:

  • 您在尝试上述内容时是否遇到错误?
  • 不,我遇到了 url 错误。因为 url 是 localhost/mysite/comment/create 而不是 localhost/mysite/index.php/comment/create

标签: php jquery ajax yii


【解决方案1】:

我通过“隐藏”data 属性中的 url 来解决这个问题:

<div id="comment" data-url="<?php echo Yii::app()->createUrl('comment/create', array('post_id' => $data['id'], 'user_id'=> Yii::app()->user->id)); ?>"></div>

在您的 javascript 代码中,您可以通过以下方式访问它:

$("#comment").data('url');

【讨论】:

  • 太棒了!谢谢 ! @米歇尔
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-18
  • 1970-01-01
相关资源
最近更新 更多