*编辑:这个特殊情况是在我尝试调试另一个问题时创建的,这里是对我的问题的更全面描述: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']);
答案 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扩展名