如何在
ajax 调用成功后将 PHP 变量设置为值?
头.php
<script>
j.ajax({
method: 'get',
url: '/php/ajax/auto_select_market.php',
data: {
'city': geoip_city(),
'state': geoip_region()
}
});
</script>
auto_select_market.php
include_once '../includes/library.php';
include_once '../includes/config.php';
session_start();
$market = ...
$_SESSION['CURRENT_MARKET'] = $market ? $market : ...
我需要在 ajax 调用成功后设置此变量。
<?php
$user['CURRENT_MARKET'] = $_SESSION['CURRENT_MARKET'];
?>
但是,我不能只在 auto_select_market.php 的全局变量中设置变量。使用 global $user;
在其他文件中根本不起作用。
我不确定你想做什么。然而,这是我的镜头:
如您所见,如果您设置了一个$user
变量,则这些值仅在执行 php 文件(即页面(期间有效。
如果希望该值保留在服务器中,以便在页面之间检索,则可以使用 $_SESSION
。我不完全确定您是否知道可以手动将对象设置为其上的值:
$_SESSION['user'] = $user;
这样,您就可以在页面之间保留$user
值(当然还有$user['CURRENT_MARKET']
值(。
成功调用
AJAX 后,您必须发送另一个确认请求,或者您必须相信客户端正确接收了所有数据,并且成功后考虑主客户端请求。
唯一的方法,如何向服务器提供一些数据,是将它们作为 POST/GET 请求或参数(没有 REST 扩展(发送。
只需使用另一个可验证的 $_SESSION 来存储数据。此会话可验证可以使用项目的任何php文件。
i.e. $_SESSION['USER'] = $user['CURRENT_MARKET'];
注意:如果会话未启动,请使用 session_start((。
另一种方式:您可以在退出 php 脚本之前使用上面的行。