Подтвердить что ты не робот

Значения булевой переменной в PHP для реализации javascript

У меня возникла странная проблема в PHP script, которую я пишу - я уверен, что есть простой ответ, но я этого не вижу.

Я вытаскиваю некоторые vars из БД с помощью 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, и это разрушает script.

Есть ли способ правильно передать значение false в переменную myvar?

Спасибо!

4b9b3361

Ответ 1

используйте json_encode(). Он преобразует из родных типов PHP в собственные типы Javascript:

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

а также позаботится обо всех экранах, необходимых для превращения этого в действительный javascript.

Ответ 2

Это простейшее решение:

Просто используйте 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 +

Ответ 3

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