我有一个页面,其中列出了用户提出的故障单/查询。每个票证都有关联的注释,我想在用户点击票证时显示这些注释。 (我想为此使用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似乎现在正在运作! 但我还是有问题。我无法通过数据传递它。我总是得到一个'未定义的索引'错误
答案 0 :(得分:0)
我们正在使用以下代码:
<?php
Yii::app()->clientScript->registerScript('search', "
$.ajax({
url: '".Yii::app()->createUrl("/invoice/create")."',
data:'tid='+tname,
success: function(){
alert('success');
return false;
}
});
");
?>
希望这对你有所帮助。
答案 1 :(得分: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");
}
});
答案 2 :(得分:0)
找到了这样做的方法。阿贾克斯很好。
而是在Controller中我需要更新accessRules函数,将'ajaxdialog'添加到正确用户组的允许操作
array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('index','view','ajaxdialog'),
'users'=>array('*'),
),