从视图按钮调用Yii控制器方法

时间:2014-12-16 12:51:11

标签: javascript php yii view controller

我已经阅读了很多相关内容,但我无法找到解决问题的正确方法。

Yii 框架中,我需要在视图中点击按钮后执行控制器方法。我尝试用Javascript做到这一点,但它没有用。 我不需要从视图中更改任何内容,只需将代码执行到控制器中即可。在控制器执行完成后,我必须得到返回变量以在视图上显示一些答案。

3 个答案:

答案 0 :(得分:2)

AjaxButton in yii

echo CHtml::ajaxButton('ButtonName',Yii::app()->createUrl('controller/action'),
                array(
                    'type'=>'POST',
                    'data'=> 'js:{"data1": val1, "data2": val2 }',                        
                    'success'=>'js:function(data){ alert(data); /* */}',
                    'update'=>'selectorNameToBeUpdated',           
                ),array('class'=>'someClass',));

答案 1 :(得分:1)

     onclick="callController();"

使用ajax使用它,创建一个函数并使用onclick事件通过javascript调用它。

 <script>
  function callController(){
   $.post("index.php?r=controllerName/functionName, function (data) {
  });

 }
 </script>

答案 2 :(得分:0)

最后,我得到了一个解决方案,混合了你的建议。此外,我正在从事第三方项目并且代码非常混乱,实际上控制器不在正确的目录中......无论如何,这是我的解决方案:

在我看来,请调用我的JavaScript函数

onclick="myMethod(myVar");

然后:

<script>
function myMethod(Var) {

$.ajax({
    type: "POST",
    url:    "<? echo Yii::app()->createUrl('MyController/MyControllerMethod'); ?>",
    data:  {val: Var},
    success: function(msg){
        alert("Operation result: " + msg)
    },
    error: function(xhr){
        alert("failure"+xhr.readyState+this.url)
    }
});
}
</script>

在我的控制器中,只做了一些操作并返回echo:

public function actionMyControllerMethod() {

   // some operations

   echo $result;
}
相关问题