Использование AJAX для вызова проблемы с страницей PHP - PullRequest
1 голос
/ 31 июля 2010

Я работаю над назначением, которое определяет смещение часового пояса клиента, передает его в скрипт PHP, который содержит код для извлечения идентификатора часового пояса для области этого клиента.

Теперь для определения смещения часового пояса я использовал JavaScript. Однако мне нужно как-то передать это PHP. Я использовал вызов AJAX для того же.

var url = "index.php";
url=url+"?client_timezoneoffset="+offset;
xmlhttp.open("GET",url,true);
xmlhttp.send(true);

Этот JavaScript я называю onload для index.php. Но все равно $ _GET приходит пустым. Я перевернул эту реализацию и вызвал другую страницу set_client_timezone.php где, к моему удивлению, $ _GET содержал часовой пояс. Затем я сохранил его в $ _SESSION.

Когда я провел всестороннее тестирование приложения, к моему удивлению, изменения часового пояса отразились на ВТОРОЙ загрузке страницы.

т.е. в первый раз, когда я перешел на http://www.example.com/index.php,, он показал мне время в UTC, но когда я перезагрузил компьютер, он показал мне правильное время в соответствии с моим часовым поясом - Азия / Калькутта.

Может ли кто-нибудь из вас, ребята, предложить мне выход из этого парадокса?

Может ли кто-нибудь указать мне стандартный способ достижения того же (я готов откатить мою текущую реализацию)

Я впервые публикую на этом форуме, и поэтому я искренне извиняюсь, если мое сообщение нарушает какое-либо правило этого форума.

Cheers,
Abhijit.

Ответы [ 3 ]

0 голосов
/ 31 июля 2010

Я согласен с вышеуказанным предложением.Вы можете задействовать функцию js после загрузки основного содержимого (index.php) для решения этой проблемы.

setTimeout("yourfunction()",1000);// load function after 1 seconds from the actual loading time

Это может вам помочь.

0 голосов
/ 06 августа 2010

Я просто переделал основы загрузки PHP и JavaScript и изменил свой код, чтобы он заработал. Спасибо всем за быстрый отзыв.

Если вы ищете хорошее и отличное решение этой проблемы, я направлю вас в блог - http://www.incoherent.ch/blog/2008/02/20/php5-time-zone-solution/

Cheers,
Abhijit

0 голосов
/ 31 июля 2010

Если вы измените часовой пояс с помощью ajax, то работа на стороне сервера php для загрузки index.php при первом вызове уже завершена. Затем, после того как index.php будет завершен, клиентский / javascript-код запускает Ajax-запрос и устанавливает часовой пояс в сеансе, поэтому для следующей перезагрузки серверная часть php знает правильный часовой пояс.

Чтобы исправить это, вы можете попробовать это наоборот. Установите часовой пояс в php и передайте его в свой код JavaScript.

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