只有当用户打开网页时才能直接用php的值,其他情况需要向服务器发送消息请求php的变量值(可用ajex)。
打开网页时,php值传给js有两种方法:
第一种将html代码当成一个字符串,如:
$v = json_encode($v)
$html="<script> var val = {$v} </script>"
第二种将值放入html中,取html元素的值,如:
<?php
$v = json_encode($v)
?>
<html>
<script>
var val = $("#val").html()
</script>
<body>
<div id='val'><?php echo $v ?></div>
</body>
</html>
其实不是javascript得到php变量,而是php把变量值传给javascript,其实也不叫传给javascript。说不清楚了,看下面实例。untitled1.php:
<script language="php">
$ip = $_SERVER['HTTP_REMOTE_ADDR']
</script>
<script language="javascript">
var ip = "<?= $ip?>" // here, look!
var result = "You IP address is: " + ip
document.write(result)
</script>
那么运行untitled1.php时,页面上就会显示
You IP address is: 127.0.0.1
如果你要使用调用,即
<script src="untitled1.php"></script>的话,
只要把untitled1.php代码改为:
<script language="php">
$ip = $_SERVER['HTTP_REMOTE_ADDR']
</script>
var ip = "<?= $ip?>" // here, look!
var result = "You IP address is: " + ip
document.write(result)