[英]transfer a Variable from php to js
当我尝试将变量从php传输到js时,我感到非常困惑。 当我尝试使用ID获得价值时,一切都很好
例如:
var name = $("#name").val();
但是我的问题是,如果要转换此变量,例如:
$id = 182938; //the id of the user
到这个变量:
var id;
这个问题可能是愚蠢的...也许对你来说很容易,但对我来说却不是:p
我查了一下,只在我要查找的任何地方找到了这样的东西:
<?php
$number = rand();
?>
<script language="javascript">
var num = <?php echo $number ?>
</script>
它具有与传递值相同的影响吗?
谢谢!!
不完全的。 编码为JSON将确保它是有效的JavaScript文字。
var num = <?php echo json_encode($number) ?>
代码的作用是:
<?php
$number = rand(); //assign random number to $number. let's say it's "3"
?>
//then these are printed on the page normally
<script language="javascript">
var num = <?php echo $number ?> //the $number is echoed at this position
</script>
然后浏览器会收到:
<script language="javascript">
var num = 3;
</script>
您必须生成语法有效的javascript。 PHP可以将文本回显到它正在生成的页面的任何部分,但这并不一定意味着它实际上是可用的文本。 就您而言,您忘记了;
,因此您生成的javascript实际上是语法错误:
var num = <?php echo $number ?>;
^--- missing
在输出文本时,也会发生同样的事情。 考虑将某人的姓名存储在变量中的位置:
<?php
$name = "Miles O'Brien"; // <-- note the single quote
?>
<script>
var name = <? php echo $name ?>;
</script>
看起来不错,但实际上会生成另一个语法错误:
var name = Miles O'Brien;
整个字符串之间没有引号,并且嵌入式引号将在javascript中启动一个字符串,从而导致JS解释器抱怨未定义的变量“ Miles”,未定义的变量“ O”和未终止的字符串文字。
相反,PHP应该是:
var name = <? echo json_encode($name) ?>;
JSON封装可确保您嵌入语法上有效的Javascript值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.