Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用AJAX调用PHP页面问题_Php_Javascript_Ajax - Fatal编程技术网

使用AJAX调用PHP页面问题

使用AJAX调用PHP页面问题,php,javascript,ajax,Php,Javascript,Ajax,我正在处理一个任务,它确定客户端时区偏移量,并将其传递给一个PHP脚本,该脚本包含获取该客户端区域时区标识符的代码 现在,为了确定时区偏移量,我使用了JavaScript。但是,我需要一些方法将其传递给PHP。我使用AJAX调用实现了同样的功能 var url = "index.php"; url=url+"?client_timezoneoffset="+offset; xmlhttp.open("GET",url,true); xmlhttp.send(true); 我调用的这个JavaS

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

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

var url = "index.php";
url=url+"?client_timezoneoffset="+offset;
xmlhttp.open("GET",url,true);
xmlhttp.send(true);
我调用的这个JavaScript是onload of index.php。但你得到的美元还是空的。 我扭曲了这个实现,并调用了另一个页面set_client_timezone.php 令我惊讶的是,你竟然被时区控制住了。然后我将其存储在$\u会话中

当我对应用程序进行全面测试时,出乎意料的是,时区的变化在页面的第二次加载中得到了反映

i、 e.我第一次导航到时,它以UTC显示时间,但当我重新加载时,它根据我的时区显示正确的时间-亚洲/加尔各答

你们当中有谁能给我一个摆脱这个悖论的方法吗

有人能给我指出一种实现同样目标的标准方法吗?我准备回滚当前的实现

我是第一次在这个论坛上发帖,如果我的帖子违反了这个论坛的任何规则,我深表歉意

干杯,
Abhijit.

如果通过ajax更改时区,那么在第一次调用时加载index.php的php服务器端工作已经完成。 然后,在index.php完成后,客户端/javascript代码启动Ajax请求并将时区设置到会话中,以便下次重新加载时,服务器端php代码知道正确的时区


要解决这个问题,你可以反过来试试。用php设置时区并将其传递给javascript代码。

我同意上述建议。 您可以在加载main contentindex.php后调用js函数来解决此问题

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

这可能会对您有所帮助。

我刚刚重新编写了PHP和JavaScript的加载基础,并重新修改了代码以使其正常工作。谢谢大家的及时反馈

如果你想找到一个很好的解决方案,我会带你去一个博客-

干杯,
Abhijit

感谢您的快速回复。我正在使用JavaScript来确定客户端时区偏移量,这取决于我需要为我的PHP脚本设置默认时区的位置……您如何确定时区?php不也可以吗?除此之外,我能想到的唯一解决方案是,通过ajax加载所有依赖于时区的内容。因此,您可以确定您已经知道用于显示相应数据集的时区。请参阅。。。在页面加载时,我调用上面的JavaScript,它以秒为单位返回偏移量。我使用GET将其传递到set_client_timezone.php页面。在这个页面中,我将其设置为$\u SESSION。现在在PHP中有一个名为timezone\u缩写词\u list的API函数,它返回数组中的所有时区标识符,其中的偏移量\u以秒为单位,时区\u标识符,日期\u light \u保存时间条目。我使用上面的偏移量从这个数组中检索时区。有没有其他标准的方法可以解决这个问题?