2011-12-29 68 views
0

我有一个非常困难的问题atm,一个我不能解释...。我真的希望这里的某个人能够解释这种困境。同时在不同的计算机上填写drupal表单混合不同计算机的form_state数据

在我的网站上,我有一个自行开发的模块,显示某种注册表格。报名表格由不同部分组成:

  1. 个人信息
  2. 教育信息
  3. 语言技巧
  4. 本地/交换特定信息
  5. 一些可选的补充发言。

使用AHAH和AHAH帮助程序模块我已经创建(读取:编程)此表单为'multipage'。它的顶部标题描述了你现在正在进行的总注册的哪部分,以及哪些部分尚未完成。您有上一个/下一个按钮可在窗体的不同页面之间导航。 这全部由AHAH控制,并且使用默认值'current_page'的隐藏表单元素跟踪页面。无论如何,这是一种除了点。

上述解释的重要部分是,通过使用form_state变量,所有不同部分的数据通过不同页面持续存在。 AHAH Helper保存在form_state的'存储'中保存的表单中输入的先前值。

现在一些用户似乎在注册时将遇到以下问题: 虽然他们在他们的信息填写,有的AHAH呼叫的形式触发(如:按一个按钮,检查电子邮件地址在AHAH调用完成后,检查出生日期> = 17),表单元素中已填写的值已被完全不同的值替换。 不同人的姓名,他的年龄,他的电子邮件地址等等。即使这个人,我认为这是正在发生的事情,在另一个私人计算机上填写表格,显然是不同的会话。

我的用户不用登录网站就可以使用此页面进行注册,我不确定是否会导致问题?

无论如何,据我所知,当我尝试用计算机上不同浏览器的不同数据填写表单时,我只能重新创建问题。在这种情况下,我可以设法破坏form_state数据。但是,由于用户使用的是不同的私人计算机,它们可能会使用不同的会话/ cookies/what-not,它如何能够将form_state数据更改为也填写表单的另一台计算机的form_state数据? ?

我不明白?使用AHAH(& AHAH Helper)是否存在某种固有的缺陷来保持form_state?如果有,是否有某种解决方法?我只是在我的模块代码中的某处发生了一个巨大的newby错误,导致表单无法正常工作?

请问有没有人可以在这个问题上解决一些问题?我是绝对的,而且完全没有办法,我也无法想象会出现什么问题,以及如何解决问题。 请帮帮我!:S

在此先感谢!

最好的问候,

汤姆

编辑: 这个问题说明问题在Drupal 6.x中

+0

您是否可以发布构建表单的代码? – Clive 2011-12-29 14:08:29

+0

对不起,延迟回复。我真的以为我会收到一封电子邮件通知。我稍后会检查我的设置。 在这里分享代码会有点困难,但我可以将你链接到我的github: 它从这里开始于[link] https://github.com/tompauwaert/Buddylinker/blob/master/buddylinker_v2.module在线304然后进入这个文件:[link] https://github.com/tompauwaert/Buddylinker/blob/master/managers/registration_manager.php。 我刚开始想知道,问题是我使用静态方法吗? – 2012-01-22 09:55:47

回答

0

我回答我的问题已经找到了解决办法后(相当虽然回来了,但我忘了这个问题)。

问题是,不同计算机的form_state使用drupal的会话信息分开。 但是,这似乎并没有正确地与用户的AHAH表格没有注册正常工作。

让用户在填写这些表单之前注册,解决了所有的并发问题。

相关问题