0

我试图弄清楚如何将 Javascript/JQuery 变量“发送”到 PHP 变量。我在这里找到了这篇文章,并尝试关注那里的一些内容,但没有成功。我试图为此编写最简单的代码,作为测试它的一种方式。这里是。

文件名.php

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>

<?php
$test = $_POST['test'];
echo $test;
echo "Test Ran";
?>

<input type="button" id="rawr" value="Test"/>

<script>
var somestring = "some string";

//Audio test
$("#rawr").click( function() {
    alert("BUTTON PRESSED");
    $.post("thefilename.php", {test : somestring});
});

</script>

在我看来,这是一种简单的测试方法。也许我有什么问题......不确定......这就是我在这里的原因。只是寻找将变量从 Javascript 传递到 PHP 的最简单方法。最终我也想传递一个数组。对此的任何帮助也将不胜感激。

4

1 回答 1

2

我认为您从根本上对 PHP 与 JavaScript 的页面生命周期感到困惑。PHP 是一种服务器端脚本语言。当您从服务器请求页面时(通过导航到该页面或启动 AJAX 调用),PHP 脚本会从头到尾运行,并且您的服务器会返回其输出(在本例中为 HTML 页面)。而已。当页面源传送到您的浏览器时,PHP 就完成了。

另一方面,JavaScript 是一种客户端脚本语言。JavaScript 在您的浏览器中运行,并且可以在页面加载后对页面进行更改(最明显的是通过更改 DOM)。

AJAX 在这两个世界之间提供了一种有些微弱的联系。像 jQuery 中的 .post() 这样的 Javascript 函数将异步请求发送回服务器并告诉服务器检索某个文件。如果该文件是 PHP,服务器通常会执行它。

因此,在您的示例中,会发生以下情况:

  1. 在浏览器中输入 thefilename.php 的 URL,然后按 Enter
  2. 浏览器向服务器发送请求文件名.php
  3. 服务器将文件名.php 识别为 PHP 文件并告诉 PHP 执行脚本
  4. PHP 脚本运行。它的输出取决于请求正文中包含的数据(PHP 中的 $_POST)。它输出一些 HTML 代码。
  5. 服务器使用通过执行它生成的 HTML 代码响应您对 thefilename.php 的请求。
  6. 您的浏览器会为您呈现 HTML 代码。
  7. 你点击按钮
  8. 浏览器中的 JavaScript 向服务器上的 thefilename.php 发送请求
  9. 您的服务器将文件名.php 识别为 PHP 文件并告诉 PHP 执行脚本
  10. PHP 脚本运行。其输出由发布的数据决定。它产生一些 HTML 代码。
  11. 服务器使用通过执行它生成的 HTML 代码响应您对 thefilename.php 的请求。
  12. .post 函数接收 HTML 响应,然后在警报中呈现它。

我希望这有助于解释发生了什么。您很可能需要一个单独的 PHP 文件来进行异步调用。

于 2013-07-15T19:48:53.193 回答