在我看來,你的表單系統可能會使用一點改進。爲什麼不將每個表單都表示爲一個類,並使HandlePostBack
函數成爲一種方法?然後你可以檢測到已經提交的表單並處理它。
class ProfileForm extends Form {
private $form_items = array(
new FormItem('name', 'datatype', 'other_parameters'),
new FormItem('another_name', 'datatype', 'other_parameters'),
...
);
public function render() {
...
}
public function handlePostData() {
...
}
}
如果您使用的是標準格式爲您提交按鈕的ID(類似<form_name>_submit
,你可以做的提交是這樣的:
foreach ($_POST as $key => $value) {
if (substr($key, strlen($key) - 7) == '_submit') {
$className = ucfirst(substr($key, 0, strlen($key) - 7)) . 'Form';
$form = new $className();
$form->handlePostBack();
}
}
這正是我所期待的。這裏也有一些其他感興趣的想法。 – EvilChookie 2009-05-28 05:58:35