为什么javascript无法识别php代码?

时间:2011-04-02 23:53:59

标签: php javascript variables

*编辑:这个特殊情况是在我尝试调试另一个问题时创建的,这里是对我的问题的更全面描述:Why is javascript not able to use a javascript variable I declared in a php file?

问题在于:

我在javascript文件中有以下php代码但它不会编译。当变量simple被传递给函数placem时,底部使用变量simple:

 <?php $simpleString = "i hope this works"; ?>


 var simple = "<?php echo $simpleString; ?>";

 window['mod0_2']= -.0015138;
 window['mod1_2']= -.3424094;
 window['mod2_2']= .40461099;

 window['lla0_2']= 43.6124872;
 window['lla1_2']= -116.20349;
 window['lla2_2']= 821.802867;

 window['publica2'] = new modd('milktruck','publica2',modScaler,'shadowrect3',1);

 placem('p2','pp2', simple, window['lla0_2'],window['lla1_2'],window['lla2_2']);

3 个答案:

答案 0 :(得分:7)

您是否在.js文件中使用PHP?如果是这样,Javascript在客户端运行,其中PHP在服务器上运行。如果要在Javascript文件中执行PHP,则必须将该文件重命名为.php,并将该新文件包含在HTML中。

答案 1 :(得分:2)

典型情况是在服务器上托管HTML,JavaScript和PHP(或其他一些服务器端编程语言/技术)。然后,您将使用其他计算机上的Web浏览器访问该网站。再次,这是典型的场景。所有这些组件都可以存在于同一台机器上。

在开源世界中,最流行的Web服务器称为Apache。 Apache有一个模块(称为mod_php),它解释PHP代码,执行它并返回其输出。 (其他编程语言确实存在模块,但我不会参与其中。)

有两种基本方法可以实现您的目标,两者都有其优点和缺点。

1)配置mod_php将* .js文件解释为PHP文件。

2)将您的JavaScript文件创建为PHP文件。这与从PHP文件提供HTML的方式相同。 PHP代码可以与HTML在同一文件中混合使用。标记<?php ... ?>指定应由mod_php解释的PHP代码。其他所有内容都只是作为输出发送到浏览器。

这是一个非常简单的HTML页面的简单示例,其中PHP用于提供<title>标记的内容:

<html>
<head>
<title>
<?php echo 'Hello world'; ?>
</title>
</head>
<body>
</body>
</html>

这将出现在服务器上的PHP文件中。在浏览器中,生成的HTML源代码如下所示。 (也就是说,如果您在页面上执行了“查看源代码”。页面本身将显示为空白,标题栏将包含单词:Hello world。)

<html>
<head>
<title>
Hello world
</title>
</head>
<body>
</body>
</html>

这也可以使用JavaScript而不是HTML来完成。要记住的重要一点是该文件有两个视图。一,是你在查看原始文件时看到的。另一个是在执行PHP并将输出返回给浏览器之后该文件的外观。你基本上做的是将PHP的输出与HTML / JavaScript结合起来形成最终输出,然后发送到浏览器进行显示。

答案 2 :(得分:1)

milktruck.php

<?php 
 $simpleString = "i hope this works"; 

echo 'var simple = "'.$simpleString.'";

 window[\'mod0_2\']= -.0015138;
 window[\'mod1_2\']= -.3424094;
 window[\'mod2_2\']= .40461099;

 window[\'lla0_2\']= 43.6124872;
 window[\'lla1_2\']= -116.20349;
 window[\'lla2_2\']= 821.802867;

 window[\'publica2\'] = new modd(\'milktruck\',\'publica2\',modScaler,\'shadowrect3\',1);

 placem(\'p2\',\'pp2\', simple, window[\'lla0_2\'],window[\'lla1_2\'],window[\'lla2_2\']);';

?>


<script src="milktruck.php"></script>

你可以使用htaccess并通过一些modrewrites保留.js扩展名