使用AJAX调用PHP页面问题

时间:2010-07-31 09:40:31

标签: php javascript ajax

我正在处理一个确定客户端时区偏移量的赋值,将其传递给PHP脚本,该脚本包含一个代码来获取该客户端区域的时区标识符。

现在确定时区偏移量,我使用了JavaScript。但是,我需要一些方法将其传递给PHP。我使用了AJAX调用。

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

这个JavaScript我正在调用index.php的onload。但是$ _GET仍然是空的。 我扭曲了这个实现并调用了另一个页面 set_client_timezone.php 令我惊讶的是,$ _GET包含时区。然后我将它存储在$ _SESSION中。

当我对应用程序进行全面测试时,令我惊讶的是,时区更改反映在页面的第二次加载上。

即。我第一次导航到http://www.example.com/index.php时,它向我显示了UTC时间,但是当我重新加载时,它显示了我的时区 - 亚洲/加尔各答的正确时间。

你们中的任何人都可以建议我摆脱这种悖论吗?

任何人都可以指出我实现相同的标准方法(我已准备好回滚当前的实现)

我是第一次在这个论坛上发帖,如果我的帖子蔑视这个论坛的任何规则,我会表示衷心的道歉。

干杯,
作者Abhijit。

3 个答案:

答案 0 :(得分:0)

如果你用ajax更改时区,那么在第一次调用时加载index.php的php服务器端的东西已经完成了。 然后在index.php完成之后,客户端/ javascript代码启动Ajax请求并将时区设置为会话,因此对于下次重新加载,服务器端的php内容知道正确的时区。

要修复它,你可以反过来试试。在php中设置时区并将其传递给您的javascript代码。

答案 1 :(得分:0)

我同意上述建议。 加载主内容(index.php)后,您可以使用js函数来解决此问题。

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

这可能对你有所帮助。

答案 2 :(得分:0)

我刚刚修改了PHP和JavaScript的加载基础知识,并重新修改了我的代码以使其正常工作。感谢所有人的及时反馈。

任何人都在寻找这个问题的优秀解决方案,我会引导您访问博客 - http://www.incoherent.ch/blog/2008/02/20/php5-time-zone-solution/

干杯,
作者Abhijit