-2

如何在 ajax 调用成功后将 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;在其他文件中根本不起作用。

4

3 回答 3

1

我不确定你想做什么。然而,这是我的镜头:

如您所见,如果您设置一个$user变量,则这些值仅在执行 php 文件(即页面)期间有效。

如果您希望该值保留在服务器中以便可以在页面之间检索,您可以使用$_SESSION. 我不完全确定您是否知道可以手动将对象设置为它的值:

$_SESSION['user'] = $user;

这样,您可以在页面之间保留您的$user价值(当然还有您的$user['CURRENT_MARKET']价值)。

于 2013-07-08T19:16:16.710 回答
0

成功 AJAX 调用后,您必须发送另一个确认请求,或者您必须相信客户端正确接收了所有数据,并且成功考虑主客户端请求。

如何将一些数据提供给服务器的唯一方法是将它们作为 POST/GET 请求或参数发送(没有 REST 扩展)。

于 2013-07-08T19:32:59.957 回答
0

只需使用另一个 $_SESSION veriable 来存储数据。此会话可验证可用于项目的任何 php 文件。

i.e. $_SESSION['USER'] = $user['CURRENT_MARKET'];

注意:使用 session_start(); 如果会话没有开始。

另一种方式:您可以在退出 php 脚本之前使用上面的行。

于 2013-07-08T19:44:02.900 回答