如何在yii控制器操作中使用Javascript / jquery代码?

时间:2014-01-10 07:55:17

标签: javascript php jquery yii

我希望在yii项目中的APIController中重复调用一个javascript函数。

 public function actionMytimer() {
    Yii::app()->clientScript->registerCoreScript('jquery');
    Yii::app()->clientScript->registerCoreScript('jquery.ui');
    $hello = setInterval(test,1000);
    function test(){
        echo 'hellooo interval';
    }  
}

对我来说,在特定的时间间隔内运行“测试”方法是非常必要的。这有可能吗?如果没有,那么有什么方法可以做到这一点吗?请帮忙。谢谢你。 这是当前的警告信息:

Fatal error: Call to undefined function setInterval() in /Library/WebServer/Documents/MediaPult/protected/controllers/APIController.php on line 449

2 个答案:

答案 0 :(得分:1)

如果你能更清楚地解释问题,那么人们就可以更容易地提供一个好的解决方案。

据我所知,您希望能够在服务器端重复执行一个方法。为此,您应该输出执行此操作的JavaScript代码。它会是这样的:

<script>
setInterval(function(){
    $.get(<?= Yii::app()->request->baseUrl ?>/actionName");
}, 1000);
</script>

答案 1 :(得分:0)

你不能像那样从php代码执行javascript函数。你可以尝试类似的东西:

function actionTest(){
  $cs = Yii::app()->clientScript;
  $cs->registerScript('my_script', 'setInterval(test,1000);', CClientScript::POS_READY);
  $this->render('any_view');
}