php - 将 JavaScript 变量传递给 PHP

标签 php javascript jquery

我引用这个问题: Javascript value to PHP with Jquery

我尝试在名为 a.php 的文件中使用以下代码:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript">
 var ms = 9000;
function test()
{
    $.ajax({ url: "a.php",
         data: {"test":ms},
         type: 'get',
         success: function(output) {
                      $('#testing').html(output);
                  }
    });
}
test();
</script>
<?php
$ms = $_GET["test"];
echo "I am getting below value:";
echo $ms;
?>

然后我将浏览器指向 http://localhost/learn/a.php但收到错误消息并且 $ms 的值未按预期显示:

( ! ) Notice: Undefined index: test in C:\wamp\www\learn\a.php on line 17

$ms = $_GET["test"]; <-- The line 17 in a.php

我在下面尝试了另一个更简单的代码(b.php):

<script src="js/jquery.min.js"></script>
<script type="text/javascript">
 var ms = 3000;
 $.get("http://localhost/learn/b.php", { "test": ms } );
</script>
<?php
$ms = $_GET["test"];
echo $ms;
?>

然后我将浏览器指向 http://localhost/learn/b.php但收到类似的错误消息并且没有显示 $ms 的值:

( ! ) Notice: Undefined index: test in C:\wamp\www\learn\b.php on line 7 Below is code of line 7 $ms = $_GET["test"];

请指教。谢谢。

最佳答案

好的,看看这段代码:

<script src="js/jquery.min.js"></script>
<script type="text/javascript">
 var ms = 3000;
 $.get("http://localhost/learn/b.php", { "test": ms } );
</script>
<?php
$ms = $_GET["test"];
echo $ms;
?>

我假设这一切都在一个文件中。您有两种不同语言的两段代码,它们在不同的地方被解释。首先,Javascript 位于顶部。您的服务器不会对此进行解释。它会像 HTML 一样返回到浏览器。

后来,你就有了一段 PHP。我们仍在服务器上,尚未向浏览器发送任何内容。您查找 $_GET['test'] 值。您的 URL 是 http://localhost/learn/b.php:显然该 URL 中没有 GET 值,因此出现错误。

当您的代码发送到浏览器时,浏览器会看到 $.get 行并执行 AJAX 请求。这是另一个 HTTP 请求。它不会修改原始请求,因此不会减轻您在上面收到的错误。通过此请求,您的浏览器将发送 http://localhost/learn/b.php?test=3000 到服务器,并且不会出现错误。但是,由于您没有对响应执行任何操作,因此您看不到第二个请求的效果。

关于php - 将 JavaScript 变量传递给 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6095531/

相关文章:

javascript - 如何使用浏览器创建浏览器页面?

javascript - 如何在struts2应用程序中使用Jquery从一个弹出页面导航到另一个弹出页面

javascript - &lt;textarea&gt; 元素在调用 jQuery().wrapInner 后为空

javascript - Yii2 和 Ajax : The response is not the SQL query results

PHP "&curren"字符串变成奇怪的符号

php - WordPress 插件 + Composer?

javascript - 在 php 中完成流程后更改 JS/jQuery 中的按钮文本

javascript - 实例化并注入(inject) AngularJS Controller

javascript - 文本区域的验证

jquery - 如何停止 jquery Accordion - onclick 打开所有 Accordion