我有一系列 PHP 语句,我只想在启用 javaScript 时运行。
if($js_enabled == 'yes') {
//Run a series of PHP statements
}
我的问题是我想用 javaScript 创建 $js_enabled 变量。因此,如果启用 javaScript,将创建变量并运行 PHP 语句,但如果未启用 javaScript,则永远不会创建变量,也不会运行 PHP 语句。
如何使用 PHP 可以识别的 JavaScript 创建变量?
请您参考如下方法:
你可以做到
$browser = get_browser();
if ($browser['javascript'] == 1) {
// your code here
}
请阅读documentation for get_browser
注意事项,尤其是
Note: In order for this to work, your browscap configuration setting in php.ini must point to the correct location of the browscap.ini file on your system. browscap.ini is not bundled with PHP, but you may find an up-to-date » php_browscap.ini file here. While browscap.ini contains information on many browsers, it relies on user updates to keep the database current. The format of the file is fairly self-explanatory.
同时检查评论中给 get_browser 的链接:
编辑 正如您在评论中正确指出的那样,以上内容不会告诉您 JavaScript 是否启用,而只会告诉您浏览器是否有能力 运行它。从服务器端了解客户端是不可能的,因为服务器端先运行。如果有的话,在提供页面后通知服务器端,例如就像 @mck89 建议的那样,或者简单地设置一个 cookie,你可以在每个后续请求中读取它。
但一般来说,如果您的网站需要启用 JavaScript,您应该简单地添加一条消息来告知用户此要求,例如:
<noscript>This page requires JavaScript to run properly</noscript>
换句话说,不要从 PHP 检查。只需设置浏览器可能使用的每个变量,如果 JavaScript 已启用并考虑使用 graceful degradation or progressive enhancement .