Запустите PHP на JQuery Ajax Success
Как установить значение переменной PHP после успешного вызова ajax?
head.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;
просто не работает в других файлах.
3 ответа
Я не уверен, что ты хочешь делать. Тем не менее, вот мой выстрел:
Как вы видели, если вы установите $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-скрипта.