Javascript / JQuery变量或数组到PHP变量或数组

时间:2013-07-15 19:21:18

标签: php javascript jquery jquery-post

我正在试图弄清楚如何将“Javascript / JQuery”变量“发送”到PHP变量中。我在这里找到了this post,并试着跟着那里的一些东西,没有运气。我试图为此制作最简单的代码,就像测试它一样。这里是。

thefilename.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的最简单方法。最后我想传递一个数组。对此的任何帮助也将非常感激。

1 个答案:

答案 0 :(得分:2)

我认为您对PHP与JavaScript的页面生命周期存在根本的混淆。 PHP是一种服务器端脚本语言。当您从服务器请求页面时(通过导航到它或启动AJAX调用),PHP脚本从头到尾运行,服务器返回其输出(在这种情况下是HTML页面)。而已。当页面源传送到您的浏览器时,就完成了PHP。

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

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

所以在你的例子里,会发生什么:

  1. 您可以在浏览器中输入filename.php的URL并点击 输入
  2. 浏览器向服务器发送filename.php
  3. 请求
  4. 服务器将filenamename.php识别为PHP文件并告诉PHP 执行脚本
  5. PHP脚本运行。其输出由包含的数据确定 在请求正文中(PHP中的$ _POST)。它会输出一些HTML代码。
  6. 服务器响应你对filename.php的请求 通过执行它生成的HTML代码。
  7. 您的浏览器会为您呈现HTML代码。
  8. 您点击按钮
  9. 浏览器中的JavaScript会向filename.php发送请求 你的服务器
  10. 您的服务器将filenamename.php识别为PHP文件并告诉PHP 执行脚本
  11. PHP脚本运行。其输出由发布确定  数据。它产生一些HTML代码。
  12. 服务器响应你对filename.php的请求  通过执行它生成的HTML代码。
  13. .post函数接收HTML响应,然后呈现它  在警报内。
  14. 我希望这有助于解释发生了什么。 很可能你需要一个单独的PHP文件来进行异步调用。