当我输入:
<?php
$temp="1234";
echo "<script type='text/javascript'>document.write({$temp});</script>";
?>
我在屏幕上显示1234。
但是当我用$temp="1234"
替换$temp="alfa"
时,屏幕上什么都没有。
有什么问题?我哪里错了? “1234”和“alfa”都是字符串
答案 0 :(得分:2)
alert(1234)
是有效的javascript,只会弹出屏幕上的整数1234。
alert(alfa)
正在尝试弹出屏幕上名为alfa
的变量的内容,该变量不存在。
如果您将数据从PHP插入到Javascript上下文中,则必须使用json_encode()来确保您生成VALID javascript。 e.g。
$temp = 'alfa';
$json= json_encode($temp);
echo '<script>.... {$json}...</script>';
将产生alert('alfa')
并按预期工作。
答案 1 :(得分:0)
您没有将文本括在双引号字符“”中,表示字符串。
document.write(1234)
有效,因为1234
是JavaScript中的有效值(整数),而alfa
是符号名称,应该是"alfa"
。