使用jquery在表单上添加多条记录

使用jquery在表单上添加多条记录,jquery,webforms,Jquery,Webforms,我有一个事件表单,允许某人添加新事件。一个事件可以有多个位置,我想使用jquery在add表单上做的是,让他们能够在提交表单之前添加多个位置。我知道如何将表单设置为添加多个位置,但问题是存储用户添加的多个位置的最佳方式是什么,这样我可以在用户添加位置时在表单上显示这些位置,以及在用户提交表单时忘记必填字段时重新显示这些位置 *编辑* 为了给我提供更多的信息,我试图在表单上完成什么,我正在寻找一个链接,上面写着addlocation,然后一个弹出窗口出现,询问这个位置的地址。输入位置后,单击“添加

我有一个事件表单,允许某人添加新事件。一个事件可以有多个位置,我想使用jquery在add表单上做的是,让他们能够在提交表单之前添加多个位置。我知道如何将表单设置为添加多个位置,但问题是存储用户添加的多个位置的最佳方式是什么,这样我可以在用户添加位置时在表单上显示这些位置,以及在用户提交表单时忘记必填字段时重新显示这些位置

*编辑*

为了给我提供更多的信息,我试图在表单上完成什么,我正在寻找一个链接,上面写着addlocation,然后一个弹出窗口出现,询问这个位置的地址。输入位置后,单击“添加”,然后该位置显示在表单上。然后,他们可以重复该步骤以添加其他位置。完成后,表单显示要为该事件添加的所有位置,然后该人员提交表单,我可以循环通过表单添加的位置,以便将它们添加到数据库中。那么,我如何在表单中存储位置以实现这一点呢?

更新 正确答案见以下评论: 在数据库中创建一个“位置”表,其中包含每个位置以及与之关联的所有字段。然后,您可以只使用数组中的位置id,然后在遍历数组时,可以提取该位置id的所有关联字段

如果您使用jQuery UI,您可能需要考虑一些jQuery多选择插件:


要获取要在表单上显示给用户的选中值,以及是否存在任何错误,请调用相应的方法(“getChecked”(如果您使用的是jQuery UI MultiSelect小部件),以获取所有选中复选框的数组。

当他们单击添加位置时,我会在灯箱中提供另一个表单,当他们提交时——关闭灯箱,只需将其(及其内容)添加到原始表单中)。希望这就是你想要实现的。祝你好运

谢谢你的信息。那和我要找的不完全一样。位置有多个字段,如街道、城市、州邮政编码等。因此,我希望在一个表单上添加多个位置,然后能够提交并循环使用,以便将其添加到数据库中。@John我明白了。嗯,这有点挑战性。你用什么语言?由于在每次表单提交时都会加载一个新页面,因此可以声明一个空白列表/数组,然后在每次表单提交时将该位置的id添加到列表/数组中。然后,您可以将JQuery变量设置为列表/数组值,然后在将数据发布到db时可以进行迭代。有点像黑客,但可能会奏效。@John找到了一个可能有用的教程:我在使用PHP。我计划使用临时表,因此当有人进入事件表单时,将生成一个唯一的键,并在临时表中创建添加的每个位置,并通过唯一id进行跟踪。但在执行所有这些操作之前,我试图找到一个不太密集的解决方案,该解决方案可能会将所有字段放入一个数组中,我可以通过表单访问该数组。但是我迷路的地方是每个位置都需要多个字段。@John在数据库中创建一个包含每个位置以及所有相关字段的“位置”表怎么样。然后,您可以只使用数组中的位置id,然后在遍历数组时,可以提取该位置id的所有关联字段。这样行吗?@DropTheNerd是的,这就是我希望它做的,但允许它们对多个位置执行此操作。提交表单后,如何将通过lightbox添加的位置存储在可以处理的变量中?该位置也将有多个字段。好吧,您可以将它们作为用户数据的新输入添加回初始表单,或者将它们设置为用户数据的隐藏字段,然后与表单的其余部分一起提交。否则您会希望将它们存储在会话中,但这可能会很快变得非常混乱。@DropTheNerd我在想,因为在添加新事件时,需要多个字段来创建一个唯一的id,只需将位置存储在临时表中,并使用jquery ajax动态加载通过该事件的表单添加的所有位置,并在需要时查询该表该人提交表格。我只是觉得这很极端,但看起来这是唯一可行的解决方案。因为有多个位置字段是相同的,只需将它们命名为location[1],location[2],等等。然后在您的帖子上只需foreach($\u post['location']作为$k=>$v)要获取多个位置。@DropTheNerd问题是每个位置都有多个字段。街道字段、城市字段、州字段、邮政编码字段。每个位置都需要添加到数据库中的eventlocations表中,所以我需要将每个字段拆分为db条目。