PHP переменные между файлами - PullRequest
0 голосов
/ 05 августа 2010

Существует php-файл (current.php) с некоторыми переменными, например:

function do() {
    $var = 'something';
}

И еще один php-файл (retrieve.php), который загружается в current.php с помощью jQuery ajax .load().

Проблема в - retrieve.php не видит $var.

Пробовал это (внутри retrieve.php, ничего не показывает):

global $var;
echo $var;

Как исправить?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 05 августа 2010

Некоторые вещи, о которых вы должны знать:

  • Когда вы используете PHP, вы не скачиваете файл: вы запускаете скрипт и извлекаете его вывод.
  • Переменные PHP уничтожаются при завершении скрипта. Вы не можете совместно использовать переменные между двумя сценариями, если не храните их где-нибудь (например, в базе данных или в файле сеанса).
  • Переменные PHP являются локальными для функции, в которой вы их определяете, если только вы не выполните оператор global $foo; внутри функции.
  • jQuery - это библиотека JavaScript. JavaScript и PHP - это разные языки: они не могут видеть переменные друг друга.

Сказал, что я предлагаю вам пересмотреть свой вопрос и попытаться объяснить что вам нужно сделать, а не как вы хотите его реализовать.

1 голос
/ 05 августа 2010

Если вы хотите, чтобы скрипт, который вы загружаете через AJAX, получал значение переменной со страницы, инициирующей загрузку AJAX, тогда вам нужно либо передать значения при загрузке скрипта AJAX, либо временно их сохранить (в БД, связанной с идентификатором сеансаили в сеансе var), чтобы их можно было легко найти.

1 голос
/ 05 августа 2010

Проблема в том, что retrieve.php не видит $ var.

Конечно, это так!
все переменные current.php давно мертвы вместе с самим current.php, который был запущен, напечатать некоторый HTML и умереть.

вы должны передать требуемое значение, используя стандартные механизмы HTTP. Вы знаете - ПОЛУЧИТЕ, ПОЧТУ и т. д.

...