我有多个带有ajax调用的javascript函数。一开始我把它们放在视图文件中,就像这个
<?php
Yii::app()->clientScript->registerScript(
"test",
"function test() {
jQuery.ajax({
type: 'POST',
data: 'id=120',
url: '".CController::createUrl('person/getname')."',
success: function(name){
alert( name);
}
});
};
",
CClientScript::POS_READY
);
...
?>
它可以工作,但我有很多这样的函数,所以我想把它们放在视图之外的其他文件中。我可以把它放在javascript文件中,
Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . '/js/user.js');
但是我不能使用CController::createUrl('person/getname')
来获取url。
最好的方法是什么?
不能在脚本文件中使用CController::createUrl('person/getname')
,因为它是php。如果您想在脚本文件中使用url,您必须通过分配给变量来传递它。使用registerScript()
方法声明php 中的变量