Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PHP变量在jquery加载后重置/不可用_Javascript_Php_Jquery - Fatal编程技术网

Javascript PHP变量在jquery加载后重置/不可用

Javascript PHP变量在jquery加载后重置/不可用,javascript,php,jquery,Javascript,Php,Jquery,我使用jquery.load()来显示一个php文件,该文件基本上从表中获取数据。在while循环中,我有一个变量检查用户的等级,但是,在每个.load()上,这个变量似乎变得不可用,if语句中包含该变量的所有内容都消失了 现在我意识到这一点: PHP在向客户端发出任何浏览器响应之前运行,所有 代码在服务器上运行。PHP文件中声明的变量是 在所有PHP代码运行后销毁;它们“消失” JavaScript在浏览器响应开始后运行,所有代码 在客户端上运行。通过“加载”PHP文件的输出结果, 您将无法

我使用jquery.load()来显示一个php文件,该文件基本上从表中获取数据。在while循环中,我有一个变量检查用户的等级,但是,在每个.load()上,这个变量似乎变得不可用,if语句中包含该变量的所有内容都消失了

现在我意识到这一点:

  • PHP在向客户端发出任何浏览器响应之前运行,所有 代码在服务器上运行。PHP文件中声明的变量是 在所有PHP代码运行后销毁;它们“消失”
  • JavaScript在浏览器响应开始后运行,所有代码 在客户端上运行。通过“加载”PHP文件的输出结果, 您将无法访问PHP的变量,只能访问输出
但是,我应该如何以这种方式访问变量


这是在.load()之后消失的行


我曾想过将
$u_rank
的内容存储在jQuery变量中,但后来我不知道如何处理if语句…

所以,我猜您当时正在寻找会话。

我相信您正在寻找一个
$.post
或AJAX调用

$.post('script.php', {variableIn:variableIn}, function(data){
    var u_rank = data;
});
您需要再次调用PHP以从PHP脚本中获取该变量。这当然是非常简单的,你需要弄清楚你要带回什么样的数据。您可以使用该
数据
返回从PHP脚本返回的任何内容

比如说。当我从PHP脚本返回一些结果时:

echo $var1 . ":" . $var2;
数据
将返回“variable1:variable2”。然后我在AJAX调用中使用split,如下所示:

$.post('script.php', {variableIn:variableIn}, function(data){
    var var1 = data.split(":")[0];
    var var2 = data.split(":")[1];
});

我仍在阅读,但我不认为您可以直接加载php脚本并期望它工作。PHP在页面运行之前就运行了,所以在PHP页面中加载只会表现为空白,对吗?如果您希望将PHP变量引入到脚本中,那么需要进行AJAX调用。我使用AJAX将新数据插入数据库。我只是觉得加载()后一个变量不可用有点问题……是的,我只是觉得你不能像那样加载一个变量,你需要另一个AJAX调用才能把它带回来。或者,如果您希望在插入数据时直接在AJAX调用之后使用该变量,只需在同一脚本上回显该变量,并返回数据,如下面的回答“这是在.load()之后消失的行”,在哪个load语句之后?这是loadlink()的setinterval;我看不出使用普通变量和会话之间有什么区别。。。该会话变量也将消失?不,当页面重新加载时,会话变量将保持不变。当然,当浏览器关闭时不会。然后我会调查饼干。好吧,我不敢相信这真的有效。。。谢谢这似乎是最简单的方法。不,javascript会将其解释为字符串(并且需要引号)。此时页面已经运行了PHP,因此在此之后基本上不允许使用PHP。谢谢。我会继续尝试你的方法!你说对了!如果你对此有问题,请告诉我
echo $var1 . ":" . $var2;
$.post('script.php', {variableIn:variableIn}, function(data){
    var var1 = data.split(":")[0];
    var var2 = data.split(":")[1];
});