Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
混合使用php和javascript——在什么条件下?_Php_Javascript - Fatal编程技术网

混合使用php和javascript——在什么条件下?

混合使用php和javascript——在什么条件下?,php,javascript,Php,Javascript,在什么条件下可以将PHP放入Javascript代码中?总是可以吗?这只是个坏主意吗?我很惊讶我没有看到更多 例如,我遇到了这个 $('#thumbnail').imgAreaSelect({aspectRatio: '<?php echo $thumb_height/$thumb_width;?>', onSelectChange:preview}); $(“#缩略图”).imgAreaSelect({aspectRatio:'',onSelectChange:preview}

在什么条件下可以将PHP放入Javascript代码中?总是可以吗?这只是个坏主意吗?我很惊讶我没有看到更多

例如,我遇到了这个

$('#thumbnail').imgAreaSelect({aspectRatio: '<?php echo $thumb_height/$thumb_width;?>', onSelectChange:preview}); 
$(“#缩略图”).imgAreaSelect({aspectRatio:'',onSelectChange:preview});

..在onpage脚本元素中。我不是很有经验,但我只是惊讶于我以前从未见过混合的js/php。但是你能把PHP也放到.js文件中吗?如果我将文件扩展名设置为.php,会解析文件吗?

您可以将php代码放入
*.js
文件中,但您需要告诉Web服务器也在
*.js
文件上执行php解释器。类似的内容应该出现在您的
httpd.conf

<IfModule php5_module>
    AddType application/x-httpd-php .php .php5 .js

    ...
</IfModule>

AddType应用程序/x-httpd-php.php.php5.js
...

更好的解决方案是将
*.js
文件重命名为
*.js.php
或只是
*.php
。浏览器不会介意,PHP解释器也会在这些浏览器上执行

您可以将PHP代码放入
*.js
文件中,但需要告诉Web服务器也在
*.js
文件上执行PHP解释器。类似的内容应该出现在您的
httpd.conf

<IfModule php5_module>
    AddType application/x-httpd-php .php .php5 .js

    ...
</IfModule>

AddType应用程序/x-httpd-php.php.php5.js
...

更好的解决方案是将
*.js
文件重命名为
*.js.php
或只是
*.php
。浏览器不会介意,PHP解释器也会在这些浏览器上执行

由于调试困难和/或代码可读性差(如将PHP与HTML混合),通常避免将JS与PHP混合使用。然而,这是可能的。但更安全的方法可能是将PHP值传递给函数,或者将PHP值设置为全局JS变量,然后使用该变量。也许是这样的:

    //JS code
    var value = <?php echo ($thumb_height/$thumb_width);?>

....

    $('#thumbnail').imgAreaSelect({aspectRatio: value, onSelectChange:preview});
//JS代码
var值=
....
$(“#缩略图”).imgAreaSelect({aspectRatio:value,onSelectChange:preview});

这样读起来就容易多了。祝您度过愉快的一天。

由于调试困难和/或代码可读性差(如将PHP与HTML混合),通常避免将JS与PHP混合使用。然而,这是可能的。但更安全的方法可能是将PHP值传递给函数,或者将PHP值设置为全局JS变量,然后使用该变量。也许是这样的:

    //JS code
    var value = <?php echo ($thumb_height/$thumb_width);?>

....

    $('#thumbnail').imgAreaSelect({aspectRatio: value, onSelectChange:preview});
//JS代码
var值=
....
$(“#缩略图”).imgAreaSelect({aspectRatio:value,onSelectChange:preview});
这样读起来就容易多了。祝你今天愉快

在什么条件下可以将PHP放入Javascript代码中

在任何情况下。这是不可能的,也是无用的。
您只能将相反的-JS代码放入PHP中。 换句话说,您可以让PHP输出任何文本,这些文本可以是有效的HTML、JS、XML等等。
一旦发送到浏览器,此文本将被相应地解释,但其中没有PHP的痕迹

只要PHP只表示显示逻辑,它总是可以的

因此,只有当PHP文件实际上是PHP文件时,才将其放入.js文件中

在什么条件下可以将PHP放入Javascript代码中

在任何情况下。这是不可能的,也是无用的。
您只能将相反的-JS代码放入PHP中。 换句话说,您可以让PHP输出任何文本,这些文本可以是有效的HTML、JS、XML等等。
一旦发送到浏览器,此文本将被相应地解释,但其中没有PHP的痕迹

只要PHP只表示显示逻辑,它总是可以的


因此,只有当PHP文件实际上是PHP文件时,才将其放入.js文件中

您提供的代码是在web服务器返回的网页中动态生成javascript的一种非常合理的方法

因此,例如,如果$thumb_高度为100,$thumb_宽度为10,web服务器将返回包含以下javascript的网页:

$(“#缩略图”).imgAreaSelect({aspectRatio:'10',onSelectChange:preview})

如果在对页面的另一次调用中,$thumb_height为24,$thumb_width为6,则服务器返回的网页将是:

$(“#缩略图”).imgAreaSelect({aspectRatio:'4',onSelectChange:preview})


您可以使用php动态生成网页的任何部分,包括html和javascript

您提供的代码是在web服务器返回的网页中动态生成javascript的一种非常合理的方法

因此,例如,如果$thumb_高度为100,$thumb_宽度为10,web服务器将返回包含以下javascript的网页:

$(“#缩略图”).imgAreaSelect({aspectRatio:'10',onSelectChange:preview})

如果在对页面的另一次调用中,$thumb_height为24,$thumb_width为6,则服务器返回的网页将是:

$(“#缩略图”).imgAreaSelect({aspectRatio:'4',onSelectChange:preview})


您可以使用php动态生成网页的任何部分,包括html和javascript

标题和实际问题不匹配,甚至不接近。标题和实际问题不匹配,甚至不接近。我不同意。PHP不被视为模板引擎。如果可以将它与HTML和/或JS混合使用,这并不意味着它是必须的。你需要更多的经验和/或研究。PHP是当今领先的模板引擎。它可以做与Smarty或XSLT相同的事情,但没有Smarty或XSLT。为什么还要用别的东西?为什么将PHP与HTML混合使用是不可能的,但将Smarty与HTML混合使用是可以的?有什么不同吗?你能不能分享一些关于这个话题的链接,因为我显然需要更多的经验?…如果你不知道自己问题的答案,我认为你需要更多的经验和/或研究。例如Zend framework。链接不错,但我个人更喜欢smarty作为模板,我个人不知道有谁会编写模板