我是一个使用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>
答案 0 :(得分:2)
将值从PHP
传递到JavaScript
时,您应该使用json_encode()函数。
var bool = <?= json_encode($bool); ?>
答案 1 :(得分:0)
您可以使用包含在js函数中的php标记将PHP变量传递给JavaScript。
必要的检查:
;
放在行尾。echo
变量才能设置值.. 示例:强>
<?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函数可用于解决这些问题以及保留布尔值和数字的数据类型。