【问题标题】:PHP class objects null after returning from multiple AJAX post calls从多个 AJAX 发布调用返回后 PHP 类对象为空
【发布时间】:2011-11-29 10:22:10
【问题描述】:

我有以下场景:

在onClick() 事件2 javascript 函数被调用,每个调用一个AJAX POST 请求到不同的php 脚本。在这 2 个 php 脚本中,来自 2 个不同数据库的数据被收集在 2 个类对象中。在每个脚本结束时,我调用一个 php 函数来检查两个 php 脚本是否成功结束(检查存储在 $_SESSION 中的标志)。当条件满足时,我应该有 2 个类对象填充来自 2 个数据库的数据,并并排显示它们。至少这就是我想要完成的。

我的问题是显示的数据仅适用于“last-script-to-finish”。

如果您可以建议我如何实现此目的的替代方法,或者看到我的逻辑缺陷,请大喊大叫,因为我不是基础的 php 或 Web 开发人员。

TA!

【问题讨论】:

  • 如何检查两个脚本是否都已完成?
  • 我曾经修改存储在 $_SESSION 中的变量并检查它的值。现在我使用 Niels 的建议并使用 JQuery 的 'when().done()' 方法。

标签: php javascript ajax session


【解决方案1】:

您可以使用 jQuery 执行以下操作:

$.when($.ajax("/page1.php"), $.ajax("/page2.php")).done(function(a1,  a2){
   var page1Response = a1[2].responseText;
   var page2Response = a2[2].responseText;
});

所以您知道两个 Ajax 请求都已准备就绪,那么您不必解决此服务器端问题,因为您的调用是客户端的。更多关于jQuery.when的信息。

【讨论】:

  • 听起来正是我需要的,我会试一试,看看效果如何。助教!
  • 你确实需要 jQuery 库。
  • 下载了它的最新版本并实现了你的建议,但我显然在它的逻辑上有问题。我得到了 2 个响应,我又回到了以前的位置 - 这些响应中的任何一个都只显示一个班级的数据。当两个脚本都完成后,两个类对象都应该被填充。不过感谢您的建议,正如您所说的那样,它并不能帮助我实现我想要的。
  • 但是如果你使用 alert(page1Response) 和 alert(page2Response) 会发生什么,你得到两个数据了吗?还是您的 1 个请求在服务器端不正常?
  • 它们都很好,只是当它们完成时,我想在页面上同时显示它们。所以我有一个脚本,它显示表中所有类对象的数据。那是失败的脚本,那里的类对象是空的。我得做一些调试,等我知道问题出在哪里再回来。
猜你喜欢
  • 2018-09-09
  • 1970-01-01
  • 2017-08-20
  • 1970-01-01
  • 2019-04-10
  • 2012-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多