我希望在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
答案 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');
}