从 PHP 访问 JavaScript 变量

2022-08-30 16:04:46

我需要使用PHP访问JavaScript变量。以下是我目前正在尝试的代码的精简版本,它不起作用:

<script type="text/javascript" charset="utf-8">
    var test = "tester";
</script>

<?php
    echo $_GET['test'];
?>

我对JavaScript和PHP都是一个全新的人,所以我真的非常感谢任何建议。

更新:好吧,我想我简化得太多了。我试图做的是创建一个表单,该表单将在提交时更新Twitter状态。我的表单工作正常,但我也想添加地理位置数据。由于我使用Javascript(特别是Google地理位置API)来获取位置,因此在提交表单时如何使用PHP访问该信息?


答案 1

简短的答案是你不能

我不知道任何PHP语法,但我可以告诉你的是,PHP在服务器上执行,JavaScript在客户端(在浏览器上)执行。

您正在执行 $_GET,该值用于检索表单值

内置的 $_GET 函数用于以 method=“get” 的形式收集值。

换句话说,如果您在页面上有:

<form method="get" action="blah.php">
    <input name="test"></input>
</form>

您的 $_GET 调用将检索该输入字段中的值。

那么如何从JavaScript中检索值呢?

好吧,您可以将javascript值粘贴在隐藏的表单字段中...

<script type="text/javascript" charset="utf-8">
    var test = "tester";
    // find the 'test' input element and set its value to the above variable
    document.getElementByID("test").value = test;
</script>

... elsewhere on your page ...

<form method="get" action="blah.php">
    <input id="test" name="test" visibility="hidden"></input>
    <input type="submit" value="Click me!"></input>
</form>

然后,当用户单击您的提交按钮时,他/她将向blah.php发出“GET”请求,并发送“test”中的值。


答案 2

由于JavaScript是一种客户端语言,而PHP是一种服务器端语言,您需要将变量物理推送到PHP脚本,方法是在PHP脚本的页面加载(script.php?var=test)上包含该变量,这与JavaScript无关,或者每次更改变量时通过AJAX / AHAH调用将变量传递给PHP。

如果你确实想走第二条路,你会看到XMLHttpRequest,或者我更喜欢jQuerys Ajax调用:http://docs.jquery.com/Ajax