2014-02-16 98 views
0

我必須準備一個包含大量字段(大約100)的表單。我可以使用一個大的HTML \ PHP文件,但爲了提高可訪問性和易於訪問字段,寧願選擇標籤菜單。原始表格(稱爲臨牀評估)可以在3個子表格中進行邏輯分割:歷史記錄,體檢和評估。現在,我已經有了3個選項卡,但我不確定這裏最好的方法是什麼:標籤菜單中的碎片形式菜單:最佳方法

a)創建3個PHP文件(history.php,physical.php和assessment.php)每個選項卡在不同的選項卡上,併爲每個選項卡提供一個提交按鈕。這也會導致MySQL查詢碎片化:當用戶完成歷史記錄時,她將點擊「最終確定歷史記錄」按鈕並開始相對查詢(對應於clin_evaluation表中的「歷史記錄」字段)。當然,剩下的兩個選項卡也是一樣的:b)仍然創建3個PHP文件,但只在最後插入提交按鈕(第三個選項卡),以便在插入所有數據時只處理一個查詢...

你會做什麼?我傾向於使用第一個選項,但任何意見都非常感謝!

迭戈

回答

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()受到很多評論。

+0

尼克!!這太棒了 !老實說,我懷疑我的技能是否足夠好,即使能夠使用你的解決方案,但你實現這個的方式是出色的:)感謝分享它! – Diego

+0

一次只帶一小塊。一旦你掌握了它,你就會喜歡它,因爲它使開發和管理表單變得更簡單。 –