我对此感到疯狂。我在几个地方请求ajax调用,这些ajax调用最近都没有正常工作。今天我决定重新开始使用ajax调用的新部分。所有其他的都是一样的。这是ajax数据没有发布到控制器的日子 - 总是空白。
这是其中之一。我试图允许用户点击CButtonColumn
{up}{down}
进行投票。此视图网格“_vote.php”是使用renderPartial
通过TbTabs
生成的。在renderpartial
我在最后一个参数上设置为true
。
好的,接下来的网格。这是:
<?php $this->widget('bootstrap.widgets.TbGridView', array(
'type'=>'condensed',
'id'=>'vote',
'dataProvider'=>$dataProvider,
'template'=>"{items}",
'ajaxUpdate'=>true,
'columns'=>array(
array(
'class'=>'CButtonColumn',
'template' => '{up} {down}',
'buttons' => array(
'up' => array(
'label'=>'<i class="fa fa-thumbs-up"></i>',
'imageUrl'=>false,
'url'=>'Yii::app()->createUrl("prod/votecommentup", array("id"=>$data->primaryKey))',
'click'=>' function(){
$.fn.yiiGridView.update("vote", {
type:"POST",
url:$(this).attr("href"),
success:function(data) {
$.fn.yiiGridView.update(vote);
}
}',
),
'down'=> array(
'label'=>'<i class="fa fa-thumbs-down"></i>',
'imageUrl'=>false,
'url'=>'Yii::app()->createUrl("prod/votecommentdown", array("id"=>$data->primaryKey))',
'click'=>' function(){
$.fn.yiiGridView.update("vote", {
type:"POST",
url:$(this).attr("href"),
success:function(data) {
$.fn.yiiGridView.update(vote);
}
}',
),
),
),
),
)); ?>
好的......接下来,网址为“prod / votecommentup”,与votecommentdown几乎相同。这是:
public function actionVoteCommentUp($id){
$model = $this->loadModel($id);
if(isset($_POST['VoteThis']))
{
$model->attributes=$_POST['VoteThis'];
$model->prototype_review_id = $id;
$model->user_id = Yii::app()->user->user_id;
$model->vote = "Y";
echo CJSON::encode(array('status'=>'saved'));
}echo CJSON::encode(array('status'=>'not post')); //always give me a no post
}
答案 0 :(得分:0)
我建议通过Postman App for chrome测试你的电话。这将使您能够独立于视图调试API / AJAX调用。一旦确保API / AJAX正常运行,您就可以将其集成到视图中。这允许您解耦调试过程,并希望使事情更加透明,哪些是功能的,哪些不是。