这是在 Ajax 中将 PHP 代码移出 js 的最佳方法


which is the best method to move php code out of js in ajax

我正在用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文件中使用变量someUrlbaseUrl