【发布时间】:2011-10-10 05:18:39
【问题描述】:
我正在修改作为 Web 应用程序一部分的表单组件,以支持用户在运行时添加和删除额外的表单字段。
表单提交时,表单中的数据被设置为一个 php 对象:
<?php
class users {
public function setName($name){
(...)
}
public function getName(){
(...)
}
public function setSomeAttribute($name){
(...)
}
public function getSomeAttribute(){
(...)
}
}
表单是这样生成的:
$form = new Form();
$form->addField('Text', 'Name', (... some other parameters...))
->addField('Address', 'SomeAttribute', (... some other parameters...));
会生成一个视图,其中包含表示每个字段的对象树(一些“字段”,例如地址,可以包含子字段,例如文本输入。
鉴于我们知道对象属性的名称,然后表单组件可以使用 getter 和 setter 轻松地将表单字段的结果绑定到相应的对象属性。
我现在面临的问题是:我需要允许用户在运行时添加字段。这将使用 Jquery 工作,也适用于没有 javascript 的用户。
假设我们有一个页面,用户可以在其中编辑他的个人资料并添加多个送货地址。他将有一个按钮,上面写着“添加地址”。单击此按钮将执行以下操作:
- 对于启用了 javascript 的用户,用户将立即看到一个新的“地址字段”,其中包含几个下拉列表和添加的文本字段。
- 对于未启用 javascript 的用户,页面将刷新,并添加了由几个下拉列表和文本字段组成的新“地址字段”。
让 PHP 端知道这些新字段存在并且我们需要从中获取发布的数据的最佳方法是什么?
【问题讨论】:
标签: php javascript forms