Значения булевой переменной в 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?
Спасибо!
Ответы
Ответ 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>";