0

我有一个页面,其中列出了用户提出的票证/查询。每张票都有相关的注释,当用户点击一张票时我想显示这些注释。(我想为此使用 CJuiDialog)。

为了节省页面加载时间,我想使用 ajax 来填充对话框的 .

我正在使用以下代码,它总是返回错误:“else: undefined”。然而,Chrome 的控制台返回错误:加载资源失败:服务器响应状态为 403(禁止)

$.ajax({
    url: '<?php echo Yii::app()->createAbsoluteUrl("tblTickets/AjaxDialog"); ?>',
    type: "POST",
    data: {tno: tid},  
    error: function(xhr,tStatus,e){
        if(!xhr){
            alert(" We have an error ");
            alert(tStatus+"   "+e.message);
        }else{
            alert("else: "+e.message); // the great unknown
        }
    },
    success: function(resp){
        alert('success');  // deal with data returned
    }
});

我需要什么额外的东西才能让它工作吗?

编辑:我添加了导致更改的 accessRules。我不再收到 403 错误,而是收到 500 错误。我是 Yii 的新手,我正在尝试通过 ajax 在 TicketsController 中调用一个名为 actionAjaxDialog 的函数。

EDIT2:好的 500 错误是由它调用的 PHP 函数引起的。ajax 似乎现在可以工作了!但我仍然有问题。我无法让它传递数据。我总是收到“未定义的索引”错误

4

3 回答 3

0

我们正在使用下面的代码,例如:

<?php
Yii::app()->clientScript->registerScript('search', "
    $.ajax({
                    url: '".Yii::app()->createUrl("/invoice/create")."',
                    data:'tid='+tname,
                    success: function(){
                      alert('success');
                      return false;
                    }
               });
");
?>

希望这对您有所帮助。

于 2013-08-12T12:49:15.247 回答
0

找到了做到这一点的方法。阿贾克斯很好。

相反,在控制器内部,我需要更新 accessRules 函数,将“ajaxdialog”添加到正确用户组的允许操作中

array('allow',  // allow all users to perform 'index' and 'view' actions
    'actions'=>array('index','view','ajaxdialog'),
    'users'=>array('*'),
),
于 2013-08-28T11:20:30.410 回答
0

试试这个它对我有用

 $.ajax({
            url:"<?php echo Yii::app()->createUrl('/controllername/actionname');?>",
            data:{},//data for throwing the expected url
            type:"POST",//you can also use GET method
            dataType:"html",//you can also specify for the result for json or xml
            success:function(response){
                 $('#news').html(response);
            },
            error:function(){
                 alert("Failed request data from ajax page");
            }
        }); 
于 2013-08-12T13:40:11.953 回答