Установка переменных PHP из AJAX / Json - PullRequest
1 голос
/ 11 мая 2011

На данный момент у меня есть этот код:

index.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, но сейчас мне нужно взять переменную PHP из файла user_data.php и использовать ее в файле index.php. Можно ли отправлять / захватывать переменные PHP таким образом?

например. в user_data.php у меня есть переменная $ test, и я хочу использовать эту переменную $ test в index.php

Спасибо за любую помощь

Ответы [ 5 ]

1 голос
/ 11 мая 2011

Есть много способов сделать это, и самый простой (и самый прозрачный способ сделать это) - установить cookie-файл сеанса. Это небольшой файл, который находится на компьютере клиента и доступен для чтения всем сайтам в вашем поддомене (x.mydomain.com.), В основном всем файлам в той же папке, что и файл, который его установил. Вы можете легко сделать это в PHP, выполнив следующие действия:

  1. На КАЖДОЙ странице вы хотите установить, получить или иным образом проверить переменные ... используйте этот код

    session_start();  // Put this at the TOP of your page, below <? or just before you check the variables.
    
  2. На странице вы хотите установить переменные ... используйте этот код

    $_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.
    
  3. На странице вы хотите получить переменные .. используйте этот код

    $test = $_SESSION['variable'];
    

В основном вы можете использовать массив $ _SESSION для хранения переменных, которые вы хотите видеть как "глобальные" на вашем сайте. Форумы используют это для хранения идентификатора пользователя и хеша сессии для последующей аутентификации по паролям. Другие сайты используют сеансовые куки для ограничения активности пользователей в течение определенного периода времени.

-

Существует также другой способ сделать это: создать ссылку на вашей странице со ссылкой на страницу, генерирующую значение $ test, и отправить запрос GET на index.php (например, если пользователь щелкает ссылку в формате ссылки, например:

index.php?test=value

Тогда на index.php просто сделайте:

$test = $_GET{'test'];

Этот метод хорош для пользователей, у которых может отсутствовать поддержка файлов cookie или которые могут отключить файлы cookie; но это очень очевидно, и пользователи могут легко изменить значение файла cookie (что может привести к непредвиденным результатам.)

0 голосов
/ 11 мая 2011

Вы должны создать свой код JavaScript динамически, с помощью PHP:

alert("server name: <?php
  echo $_SERVER['SERVER_NAME'];
?>");

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

0 голосов
/ 11 мая 2011

У вас есть ответ на ваш вопрос в вопросе!

Даже если вы создаете и массив для кодирования в формате JSON, на самом деле вы просто передаете значения из php в javascript.

Вы могли бы в равной степени сделать

$profile['test'] = $test;

и затем в вашем javascript используйте

data.test 

чтобы получить ваше значение.

Вопрос в том, когда вы хотите получить жизнеспособную ценность? Это перед обслуживанием страницы или во время вашего вызова ajax?

0 голосов
/ 11 мая 2011

двумя способами:

либо установите $test в $_SESSION['test'] и включите его index.php

альтернатива:

сделал васпопробуйте с json_decode ()

0 голосов
/ 11 мая 2011

То, что вы просите, на самом деле не может быть выполнено, поскольку index.php выполняется до user_data.php. Однако, поскольку вы отправляете результат из user_data.php в index.php, возможно, вы можете посмотреть на использование переменной с помощью JavaScript. Почему бы не рассказать нам больше о том, чего вы хотели бы достичь, чтобы мы могли предложить, как это можно сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...