2012-06-06 37 views
0

我已經搜索了一段時間所以我很抱歉,如果類似的問題被問及答案,但我不相信有。如何使用PHP驗證動態表單?

我正在使用PHP驗證腳本和jQuery驗證來處理我網站上的所有表單。與已知的領域,沒有問題。但是,用戶可以輸入其他人的信息。

要求用戶在表單中輸入其家人的姓名。用戶可以提交表單或選擇將其他家庭成員添加到表單。我還沒有弄清楚如何正確循環遍歷所有字段,並根據jQuery中的用戶輸入顯示唯一的消息,但知道我可以使用元數據和驗證插件來實現。

我的問題在於PHP。我可以獲取每個數組並通過foreach循環運行,但是,如果在ANY字段中發現錯誤,則會生成錯誤,並且將再次顯示錶單,其中包含所有字段的先前輸入的數據。我無法確定如何將每個字段的原始數據指向它,因爲出現錯誤時字段是動態構建的。

我能拿出演示最簡單的方法是這樣的:

用戶必須輸入餡餅,他希望他的朋友吃個百分點。 他必須給他100%的餡餅。用戶可以選擇動態添加朋友到他的餡餅吃盛宴,但每個人必須得到至少1%的派,他們必須一起吃100%。

Sample code

我已經在這裏創造一個示例腳本,顯示的形式設置,但顯然沒有PHP後臺測試。你將需要使用你的想象力後端工程(我已經添加到html中的評論)。同樣的原則適用於PHP SESSION變量,因爲這些數據需要從一個頁面傳遞到另一個頁面(如果用戶重新訪問此頁面,則應顯示爲每個餡餅輸入的數量)。此外,我認爲這是不言而喻的,但這個數據必須是驗證服務器端。

+0

因此,您將擁有一組輸入數據,其中一些數據無效,您需要構建一個預填充的表單?你只需遍歷它併爲每一個構建一個表單元素。什麼似乎是問題? – Okonomiyaki3000

+0

@ Okonomiyaki3000 - 表格已經建好,然後添加動態字段。你是否建議一旦頁面被重新加載(並因此被驗證),在存在錯誤的情況下忽略現有的表單代碼並簡單地使用已經收集的字段構建一個新表單? – JM4

+0

是的。 (此評論必須至少15個字符長) – Okonomiyaki3000

回答

0

如果遇到PHP錯誤,您是不是要重新加載頁面?在這種情況下,你知道foreach循環中的錯誤索引,保存到某個變量 - 最有可能是一個數組來處理多個錯誤。當您將選項打印出來並且循環遍歷提交的數組時,當達到錯誤數組中的計數時,您不會向文本框中添加額外的css類。

+0

您是否查看示例代碼?頁面正在重新加載,表單操作被設置爲重新加載自己,但索引被命名爲數組。什麼是確定動態數組的哪一部分被顯示,更好的是,之前生成了多少個動態字段。 – JM4