簡體   English   中英

創建帶有會話的多頁PHP表單

[英]Creating a multi-page PHP form with sessions

我需要用PHP / MySQL創建一個相當廣泛的表單,並帶有很多條件邏輯,最終以提交到MySQL數據庫為結尾。 因此,基本上,用戶首先選擇了單選按鈕(這是因為他們正在“選擇”圖片),然后基於該提交將其帶到表單的下一個“頁面”。 該提交還必須存儲在會話或cookie中,因為在表單末尾,我將收集他們的所有輸入並在數據庫中填充一行。 我的方法應該是什么? 現在,我正在編寫將POST數據存儲在SESSION中的表單,然后在最后填充數據庫行,但是,一旦我在頁面之間引入條件邏輯,會話就會中斷並且不會被發送。 任何幫助將不勝感激。

我正是使用250個問題的心理測試系統來做到這一點的。 一旦您考慮了一下,這並不是很難。 我使用的解決方案是在堆疊的div中輸出,而不用擔心制作單獨的頁面並發布到會話上-它更干凈。 提交按鈕位於每個div上,但僅在最后一個div上提交-函數顯示下一個div並在其他“頁面”中單擊時隱藏當前div。 使用變量和PHP數學,我可以將測試設置為不同的組合,例如1頁250頁,5頁50頁等。最困難的邏輯是使用適當數量的問題來構建頁面並進行確保div的標題有效,可以與您的顯示/隱藏腳本一起使用。 就我而言,我使用Jquery的顯示/隱藏功能。 奇跡般有效。

因為此解決方案使用一頁,所以您不必擔心值來回移動時會“忘記”值。 就我而言,我什至不允許用戶返回,因為我沒有給他們提供任何用戶界面。 在瀏覽器上單擊鼠標左鍵會警告他們,他們將離開頁面。 但是,您可以使用幾種不同的方法來允許它們返回,包括按鈕之類的UI,或使用瀏覽器的后退按鈕設置后退功能。 一個巨大的附帶好處是,加載幾乎是零,並且頁面更改對於用戶而言是即時的。

聽起來像是經典的“向導”界面。 快速谷歌搜索提出了這一點,但我不確定是否有什么好處。

http://www.phpclasses.org/browse/file/8308.html

在向導結束時將所有數據保存到單個更新中的優點是簡單。 在每個步驟之后寫入數據庫的好處是,用戶可以稍后返回並完成向導-您不受當前用戶會話的束縛。

如果您傾向於采用“在末尾插入”的方法,那么我建議bpeterson76的想法是使用JS在單一的實體形式上顯示/隱藏部分-只需確保您可以控制用戶的后退按鈕,否則,用戶可能會放棄所有答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM