我正在用Yii开发一个应用程序。我面临的一个问题是,当我编写ajax函数时,url将在php中。所以我无法将代码移动到另一个 JavaScript 文件。
$.ajax({
url: "<?php echo Yii::app()->createUrl('provider/ajaxdetail');?>",
data: {'type':tagtype},
beforeSend: function() { },
success: function(data) {
}
});
那么将PHP移出JavaScript的最佳方法是什么,以便我可以将JavaScript代码移动到另一个JS文件。 我想把网址放在一个隐藏的框中,然后在javascript函数中调用它。但我希望会有更好的方法来做到这一点.
请帮忙
你可以创建一个全局变量来存储 url,在你的 HTML head
中,以便任何需要 url 的 js 文件都可以访问它,例如:
<html>
...
<head>
..
var MY_APP_URL = '<?php echo Yii::app()->baseUrl; ?>'; //can be like www.somesite.com/
....
//load js files
...
在 js 文件中,您可以执行以下操作:
$.ajax({
url: MY_APP_URL + "controller_name/function_name",
data: {'type':tagtype},
或者你可以做:
Yii::app()->clientScript->registerScript('helpers', '
someUrl = '.CJSON::encode(Yii::app()->createUrl('blabla')).';
baseUrl = '.CJSON::encode(Yii::app()->baseUrl).';
');?>
你可以在你的Javascript文件中使用变量someUrl
和baseUrl