Я столкнулся с нечетной проблемой в скрипте PHP, который я пишу. Я уверен, что есть простой ответ, но я этого не вижу.
Я вытаскиваю некоторые вары из БД с помощью PHP, а затем передаю эти значения в Javascript, который динамически создается на PHP. Что-то вроде этого:
$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
, то экземпляр myvar в $ js имеет значение null, а не false
, и это нарушает скрипт.
Есть ли способ правильно передать значение false
в переменную myvar?
Благодаря!
используйте json_encode()
. Он преобразует из родных типов PHP в собственные типы Javascript:
var myvar = <?php echo json_encode($my_var); ?>;
и также позаботится о любом ускорении, необходимом, чтобы превратить это в действительный javascript.
Это самое простое решение:
Просто используйте var_export ($ myvar) вместо $ myvar в $ js;
$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+
$js = "<script type=text/javascript> var myvar = " . ($myvar ? 'true' : 'false') . "; var myurl = 'http://someserver.com/ajaxpage.php?urlvar=myvar'; </script>";