【发布时间】:2009-09-29 14:16:18
【问题描述】:
好的,前言:在 AJAX 和动态 Web 方面,我仍然是初学者。我的问题类似于下面的问题,但我认为讨论是使用框架,而我不是。
这是我的场景:
我在一个表单中有几个选择元素。每次页面加载时都会填充初始选择的选项元素。后续选择的选项元素会根据用户在前一个选择中选择的内容来填充。所以它就像一条链子。通过进行 AJAX 函数调用(只是我自己的 javascript)来填充选择中的选项,然后调用 php 文件以从数据库中获取值并构建一个 responseText 来填充基于前一个选择中所做的选择的每个后续选择。希望这很清楚?所有这些都很好用。
我的问题从这里开始:
当用户提交表单时,运行一个 php 文件来处理数据,显示成功或任何问题,然后我将用户返回到表单页面。我想重新选择他们在提交之前选择的所有选项,因为其中一些是重复性任务,这将节省他们的时间。我的第一步是调用所需的 AJAX 函数来重新填充选择元素,然后我想我可以在表单页面中运行 javascript 来选择以前选择的选项。但是,当我尝试在表单页面上运行 javascript 以选择选项时,它在 AJAX 调用完成之前运行。因此,由于选项是由 AJAX 调用填充的,因此选择中尚不存在这些选项,因此我无法选择它们。我尝试编写一些测试代码来插入一个新选项以查看代码何时运行,果然,在我的 AJAX 填充选项进入之前,该新选项被添加到选择中。为了跟踪是否选择了选项,我正在传递通过 URL 返回选择选项值,然后在我的表单页面中处理 $_GET 数组。
所以我的问题归结为:
在 AJAX 填充函数完成之前,我可以做些什么来阻止选择所选选项的 javascript 运行?
我也会接受诸如“您的整个方法都是伪造的!您从哪里获得 AJAX 编码许可证??!Cracker Jack 盒子??”之类的回答。虽然,请回答其中的几个,我是一朵脆弱的花;)
提前致谢, 卡维尔芬顿
附:希望这不是太多的序言,但我认为背景是必要的。
【问题讨论】:
-
您使用的是 AJAX 框架(如 jQuery.ajax)吗?
-
似乎与您既定目标保持一致的最简单的事情是将您的表单帖子包装在 ajax 调用中,并且从一开始就永远不要离开页面。
-
不,不使用任何框架。就直接js。
-
Mikeb - 这是否意味着表单操作将是 AJAX 调用而不是 php 页面?
标签: php javascript ajax