PHP 中的布尔变量值到 javascript 的实现

发布于 2024-10-29 08:57:31 字数 535 浏览 4 评论 0原文

我在编写的 PHP 脚本中遇到了一个奇怪的问题——我确信有一个简单的答案,但我没有看到它。

我使用 PHP 从数据库中提取一些变量,然后将这些值传递到在 PHP 中动态构建的 Javascript 中。像这样的事情:

$myvar = (bool) $db_return->myvar;

$js = "<script type=text/javascript>
        var myvar = " . $myvar . ";
        var myurl = 'http://someserver.com/ajaxpage.php?urlvar=myvar';
       </script>";

问题是,如果数据库中“myvar”的布尔值为 false,那么 $js 中的 myvar 实例为 null,而不是 false ,这破坏了脚本。

有没有办法正确地将值 false 传递到 myvar 变量中?

谢谢!

I've run into an odd issue in a PHP script that I'm writing-- I'm sure there's an easy answer but I'm not seeing it.

I'm pulling some vars from a DB using PHP, then passing those values into a Javascript that is getting built dynamically in PHP. Something like this:

$myvar = (bool) $db_return->myvar;

$js = "<script type=text/javascript>
        var myvar = " . $myvar . ";
        var myurl = 'http://someserver.com/ajaxpage.php?urlvar=myvar';
       </script>";

The problem is that if the boolean value in the DB for "myvar" is false, then the instance of myvar in the $js is null, not false, and this is breaking the script.

Is there a way to properly pass the value false into the myvar variable?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

笑饮青盏花 2024-11-05 08:57:31

使用 json_encode()。它将从本机 PHP 类型转换为本机 Javascript 类型:

var myvar = <?php echo json_encode($my_var); ?>;

并且还将处理将其转换为有效 javascript 所需的任何转义。

use json_encode(). It'll convert from native PHP types to native Javascript types:

var myvar = <?php echo json_encode($my_var); ?>;

and will also take care of any escaping necessary to turn that into valid javascript.

戏剧牡丹亭 2024-11-05 08:57:31

这是最简单的解决方案:

只需在 $js 中使用 var_export($myvar) 而不是 $myvar 即可;

$js = "<script type=text/javascript>
        var myvar = " . var_export($myvar) . ";
        var myurl = 'http://someserver.com/ajaxpage.php?urlvar=myvar';
       </script>";

注意:var_export() 与 PHP 4.2.0+ 兼容

This is the simplest solution:

Just use var_export($myvar) instead of $myvar in $js;

$js = "<script type=text/javascript>
        var myvar = " . var_export($myvar) . ";
        var myurl = 'http://someserver.com/ajaxpage.php?urlvar=myvar';
       </script>";

Note: var_export() is compatible with PHP 4.2.0+

活雷疯 2024-11-05 08:57:31
$js = "<script type=text/javascript>
    var myvar = " . ($myvar ? 'true' : 'false') . ";
    var myurl = 'http://someserver.com/ajaxpage.php?urlvar=myvar';
   </script>";
$js = "<script type=text/javascript>
    var myvar = " . ($myvar ? 'true' : 'false') . ";
    var myurl = 'http://someserver.com/ajaxpage.php?urlvar=myvar';
   </script>";
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文