我引用这个问题: 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/