如何在js里引用php变量

JavaScript018

如何在js里引用php变量,第1张

一个在前端执行,一个在后端执行,js取不到php变量实时的值。

只有当用户打开网页时才能直接用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>

php和js是两码事!

php是服务器端脚本语言,

运行与服务器端(比如Apache、iis等)

js是客户端脚本,

运行于客户端(比如浏览器)

运行顺序也不同,

php先运行,js后运行!

js变量可以用php生成,

因为php先运行,

可以输出js变量到浏览器!

php变量必须由php本身生成,

js不能给php生成变量!

js仅在 浏览器中运行.

php 仅在服务器端运行.

2者交互, 通常通过 http get/post 协议进行交互.

因此, 要将 js 变量传输到 php, 需通过 get/post 将参数传入.

譬如:

<script>

function test(){

var x="abc"

$.ajax("test.php?x="+x)

}

</script>

而 test.php 中, 通过 $_REQUEST["x"] 即可拿到js 请求过来的变量.

追问

感觉你的答案最符合我的需求,只是我还是碰到了问题。

test.php文件中

onchange事件触发test()函数,并将赋值。

<script>

function test(){

var x="abc"

$.ajax("test.php?x="+x)

}

test.php文件中

echo $_REQUEST["x"]并未获取到有效值。echo没有输出。

请问,这到底是什么原因。

追答

是因为 <script>中并没有输出由 php 传回的结果.

改成这个试试看.

1

2

3

4

5

6

<script>

function test(){

var x="abc"

$.ajax("test.php?x="+x),null,function(data){alert(data)})

}

</script>