Tab菜单中的片段形式:最佳方法

时间:2014-02-16 17:26:01

标签: php mysql tabs

我必须准备一个包含很多字段的表单(大约100个)。我可以使用一个大的HTML \ PHP文件,但为了提高可访问性和访问字段的便利性,宁愿选择标签菜单。原始形式(称为临床评估)可以在3个子表格中进行逻辑碎片化:历史,体格检查和评估。现在,我已经有了3个选项卡,但我不确定这里使用的最佳方法是什么:

a)创建3个PHP文件(history.php,physical.php和assessment.php),将每个文件放在不同的选项卡上,并为每个选项卡提供一个提交按钮。这也将导致MySQL查询的碎片化:当用户完成历史记录时,她将点击“完成历史记录”按钮,并且相对查询(对应于clin_evaluation表中的“历史记录”字段)将开始。当然还有其余两个标签

b)仍然创建3个PHP文件,但仅在末尾(第三个选项卡)插入提交按钮,以便在插入所有数据时只处理一个查询...

你会做什么?我倾向于使用第一个选项,但对此的任何建议都非常感谢!

迭戈

1 个答案:

答案 0 :(得分:0)

当我有一个表单很重的应用程序时,我使用了一个名为form_display()的函数。这需要一个像这样的数组:

$form = array(
    array(
        "type"  => "text",
        "label" => "Field Label",
        "name"  => "field_name",
        "class" => "optional-classes",
        "value" => "Field Value"
    ),
    ...
);

然后循环遍历此数组并输出必要的HTML。它使我免于一遍又一遍地编写相同的HTML。另外,如果我在应用程序中更改表单的HTML结构,我会在一个地方进行。

form_display()返回给定上述类型数组的表单的HTML。如果我需要有多个选项卡,我可以将多个form_display()调用的输出传递给`form_wrapper(),这会创建创建选项卡式界面所需的HTML和JS。

因此,在您的情况下,将表单分为三个部分,您将有三个数组传递给form_display(),然后将结果传递给form_wrapper(),结果其中包含用于制作标签界面表单的所有HTML和JS。此外,您可以将form_wrapper()传递给您保存的HTML对象按钮。这样,“保存”按钮可以位于选项卡式界面之外(可以从表单中的任何位置访问,而不仅仅是一个特定的选项卡)。

我提供了一些示例代码here,其中包括上述功能,以及我的一个项目中的一些代码片段,演示了如何使用它们。主要功能form_display()得到了很多评论。