从 AJAX/JSON 设置 PHP 变量
Setting PHP variables from AJAX/Json
目前我有这个代码:
索引.php
var refreshId = setInterval(function() {
$.ajax({
url: ("http://www.example.co.uk/erc/user_data.php?imei="+inCallingNum),
dataType: "json", //the return type data is jsonn
success: function(data){ // <--- (data) is in json format
$('#right-side').html(data.rightside);
$('#caller').html(data.caller);
$('.location').html(data.location);
$('.battery-level').html(data.battery);
//parse the json data
}
});
});
user_data.php
$profile = array();
$profile['rightside'] = $rightside;
$profile['caller'] = $caller;
$profile['nextofkin'] = $nextofkin;
$profile['location'] = $location;
$profile['battery'] = $battery;
echo json_encode($profile);
这可以很好地将信息添加到div 标签中,但是我现在需要做的是从user_data.php文件中获取一个 PHP 变量并在 index.php 文件中使用它。是否可以以这种方式发送/捕获PHP变量?
例如,在user_data.php我有一个变量$test,我想在索引中使用这个$test变量.php
感谢您的任何帮助
方法可以做到这一点,最简单(也是最透明的方法)是设置会话cookie。 这是一个位于客户端计算机上的小文件,可由子域 (x.mydomain.com.) 上的所有站点读取,基本上所有文件都与设置它的文件位于同一文件夹中。 您可以通过执行以下操作在 PHP 中轻松完成此操作:
在每个页面上,您要设置,获取或以其他方式检查变量...使用此代码
session_start(); // Put this at the TOP of your page, below <? or just before you check the variables.
在页面上,您要设置变量...使用此代码
$_SESSION['variable'] = "data"; session_write_close(); // Use this after you are done setting the session data, to save it before the page execution is finished. This is a good habit to get in to, it's kind of like when you fclose a file instead of waiting for the script to do it.
在你想要获取变量的页面上.. 使用此代码
$test = $_SESSION['variable'];
您基本上可以使用 $_SESSION 数组来存储您希望在您的网站上被视为"全局"的变量。 论坛使用它来存储用户 ID 和会话哈希,以便以后对密码进行身份验证。 其他网站使用会话 Cookie 来限制给定时间范围内的用户活动。
--
还有另一种方法可以做到这一点,从您的页面中获取一个链接,该链接生成值$test向索引发送 GET 请求.php(例如,如果用户单击链接格式,则链接如下所示:
index.php?test=value
然后在索引上.php只需执行以下操作:
$test = $_GET{'test'];
这种方法适用于可能没有 cookie 支持或可能禁用 cookie 的用户;但非常明显,用户可以轻松更改 cookie 的值(这可能会产生看不见的结果)。
你所要求的不能真正完成,因为 index.php 是在user_data.php之前执行的。但是,由于您将结果从 user_data.php 发送到索引.php也许您可以考虑使用 JavaScript 使用变量。为什么不告诉我们更多关于您想要完成的事情,以便我们提出如何完成的建议。
两种方式:
要么将$test
设置为$_SESSION['test']
,然后将其编入索引.php
另类:
你试过用json_decode()
你在问题中有问题的答案!
即使你正在创建和数组编码为JSON,你实际上只是将值从php传递给javascript。
你同样可以做
$profile['test'] = $test;
然后在你的JavaScript中使用
data.test
以获得您的价值。
问题是你想什么时候获得可变值?是在提供页面之前还是在 ajax 调用期间?
你应该使用 PHP 动态创建你的 JavaScript 代码:
alert("server name: <?php
echo $_SERVER['SERVER_NAME'];
?>");
谨慎使用它,只是在极少数情况下。
- 将PHP变量传递给jQuery时遇到问题
- 通过javascript重定向html传递php变量
- 如何在php变量中嵌入JQuery代码
- 在javascript函数中使用php变量
- 将地理编码结果转换为php变量以发布到mysql数据库
- 如何在提交表单时将PHP变量传递到Javascript cookie中
- 从Javascript和Php变量创建Html模板文档
- 如何将php变量作为javascript中列表的元素
- 将PHP变量分配给PHP数组
- 如何在没有ajax的情况下将javascript动态数据发送到php变量
- 在Javascript甜甜圈图的PHP变量中引用PHP变量
- 使用javascript访问php变量
- 在Javascript文件中获取PHP变量
- 如何为Javascript数组()的使用准备PHP变量
- 如何获取PHP变量数据并将其存储在JavaScript变量中
- Javascript变量到PHP变量-如果语句不起作用,则发布
- 通过Javascript验证PHP变量
- 如何将Ajax数据值分配给PHP变量
- 如何在 bootsrap 完整日历中使用 PHP 变量
- 在javascript中调用PHP变量