如何将变量从PHP发送到Javascript?

时间:2016-09-30 09:59:37

标签: javascript php

我是一个使用JavaScript的新手,我无法使这些代码正常工作。我只是想知道我是否可以将JavaScript代码放在HTML代码中,或者它应该是一个不同的文件。

<?php
$bool = false;
$num = 3 + 4;
$str = "A string here";
?>

<script type="text/javascript">
// boolean outputs "" if false, "1" if true
var bool = "<?php echo $bool ?>"; 

// numeric value, both with and without quotes
var num = <?php echo $num ?>; // 7
var str_num = "<?php echo $num ?>"; // "7" (a string)
var str = "<?php echo $str ?>"; // "A string here"
</script>

2 个答案:

答案 0 :(得分:2)

将值从PHP传递到JavaScript时,您应该使用json_encode()函数。

var bool = <?= json_encode($bool); ?>

答案 1 :(得分:0)

您可以使用包含在js函数中的php标记将PHP变量传递给JavaScript。

必要的检查:

  1. 确保将;放在行尾。
  2. 您需要echo变量才能设置值..
  3. 示例:

    <?php
    $date= date();
    ?>
    <script>
        document.write(<?php echo $date; ?>);
    </script>
    
      

    同样的技巧可以应用于其他数据类型(例如整数,数组,对象等)。以下内容将整个数组从PHP传递到JavaScript:

    使用json_encode(),您将始终获得格式正确的JavaScript对象。

    $shirt = array(
        'color' => 'blue',
        'number' => 23,
        'size' => 'XL'
    );
    
    echo '<script>';
    echo 'var shirt = ' . json_encode($shirt) . ';';
    echo '</script>';
    

    输出如下:

    <script>var shirt = {"color":"blue","number":23,"size":"XL"}</script>
    

    要将PHP变量($val)中保存的标量数据传递给JavaScript变量,请将以下内容放在JavaScript段中:

    var val = "<?php echo $val ?>";
    

    注意PHP标记周围的引号。这将导致JavaScript中的字符串值,您可能需要转换为在脚本中使用。如果PHP值是数字,则不需要包含引号。

    这里我们演示了分配给PHP变量的布尔值,数值和字符串值:

    <?php
    $bool = false;
    $num = 3 + 4;
    $str = "A string here";
    ?>
    

    您可以使用以下内容将它们输出到JavaScript中:

    <script type="text/javascript">
    // boolean outputs "" if false, "1" if true
    var bool = "<?php echo $bool ?>"; 
    
    // numeric value, both with and without quotes
    var num = <?php echo $num ?>; // 7
    var str_num = "<?php echo $num ?>"; // "7" (a string)
    
    var str = "<?php echo $str ?>"; // "A string here"
    </script>
    

    在某些情况下,使用此方法输出时,PHP中有效的字符串可能会在JavaScript中生成错误。 PHP json_encode函数可用于解决这些问题以及保留布尔值和数字的数据类型。