【发布时间】:2016-12-06 23:33:53
【问题描述】:
我正在开发一个项目,该项目将 ajax 发布请求发送到 php 文件,然后设置一个 php 变量并在 js 中返回该变量。这一切都很好。我正在苦苦挣扎的是,一旦 getPhpVar() 函数运行,就可以在 index.php 文件中调用 $name。
这是程序应该做的: 1.运行getPhpVar()函数 2.发送ajax帖子到get.php 3.get.php 设置名称变量 4.get.php通过js发回name变量 5. 我可以在 php 中调用 name 变量 代码: index.php
<script type = "text/javascript" src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
function getPhpVar(varname) {
$.post("get.php",
{
name: varname,
},
function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
}
getPhpVar(11);
</script>
<?php echo $name;
?>
get.php:
<?php
if( $_REQUEST["name"] ) {
$name = $_REQUEST['name'];
echo $name;
}
?>
【问题讨论】:
-
alert()没有显示预期的结果吗?它显示了什么? -
index.php 中的
<?php echo $name; ?>将始终在您的ajax 调用之前运行。它在页面发送给用户之前在您的服务器上运行。 -
我不确定您是否理解服务器端代码和客户端代码之间的区别。包含
alertis JavaScript 的那个函数。您拥有从服务器获得的价值,这就是您使用的价值。究竟是什么在这里不起作用? -
@codebro:我真的不知道如何解释这一点。您绝对应该查看先前链接的重复问题中非常全面的答案。您正在从
$name获取值以响应AJAX 请求。您已经通过提醒价值证明了这一点。如果您还想将该值放入页面元素中,则可以在该 JavaScript 函数中进行。下面的答案证明了这一点。你有你需要的一切。这里真的没有问题,代码可以工作。 -
正如其他人指出的那样,您似乎对服务器端与客户端感到困惑。为了帮助您,根据我的理解,这是您的应用程序的流程: 1. 客户端浏览器请求
index.php2. 您的服务器收到请求,PHP 代码立即执行(那是您的 @987654328 @ ) 3. PHP 完成后,将结果发送到客户端 4. 客户端浏览器执行 Javascript 代码 5. 在某个时刻,JavascriptgetPhpVar函数执行 6. 向服务器发送 AJAX 请求 @get.php7. PHP 执行并发送返回$name8. 来自客户端浏览器的Javascript回调得到响应
标签: javascript php jquery ajax