Re: [請益] 請問網路問卷設計關於分頁的問題

看板PHP作者 (請勿忘記密碼)時間16年前 (2008/02/23 23:34), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串3/9 (看更多)
※ 引述《cleanwind (骨傲風清(掛網))》之銘言: : ※ 引述《aliado (章魚趴趴照~~)》之銘言: : : 各位專業的大哥 : : 小弟最近想設計一個網路問卷系統 : : 可是看了相關討論串以及看完相關書籍以後 : : 有一個問題想請各位指導一下 : : 就是我想設計的網路問卷是想有分頁功能的 : : 就如同my3q這個網站所提供的問卷 : : 可以有下一分段 上一分段 : : 到最後再執行遞交的動作 : : 我現在只能做到全部的問項在同一頁 : : 再同時傳送%_POST['變數']給一個網頁去存到資料庫裡面 : : 至於如果要進行分頁以後 : : 各問項的變數如何儲存到最後再一起處理 : : 這部分到現在仍然沒頭緒 : : 可否請熱心的各位提供一下思考的方向 : : 謝謝大家~ : 1.使用session功能 : 不過遞交的同時記得要 unset($_SESSION['xxx']); 釋放資源。 : 2.使用input hidden的功能 :  每個問題都要有 : <input type="hidden" name="<?php evho $sid;?>" : value="<?php echo $_POST[$sid]; ?>"> : 3.每做完一頁寫一次資料庫 XD 以上3種方式都會遇到一個問題:將問卷分成數個頁面,免不了要提供 使用者回去前一個頁面修改之前填寫的資料的功能(除非在問卷設計上 就是刻意不讓使用者在送出之前有修改之前作答資料的機會)。 當使用者按下「上一頁」按鈕回到前一個頁面的時候(這裡的「上一頁」 按鈕址的是我們自己提供的按鈕,不是瀏覽器本身的上一頁按鈕,當然啦 瀏覽器本身的上一頁按鈕也會帶來問題,不過這裡先不討論),我們得 把使用者之前填寫的資料重新倒出來填入所有的欄位,當初勾選的狀態 也都要恢復原狀,這得花掉一些工夫。 因此我推第4種做法,就是在瀏覽器端做分頁。用幾個<div>將問卷題目 包起來,透過CSS/JavaScript(不難)去隱藏/顯示某一頁的題目,然後 在最後一頁提供一個送出的submit按鈕,一次將所有資料送到後端程式去。 這個做法不須用到session或者隱藏欄位,也不須考慮回到上一頁時得 將前一頁的作答狀態回復的問題(從第3頁回到第2頁只是把div#3隱藏 然後把div#2顯示而已,div#2當初的作答狀態會原封不動恢復)。 在伺服器端程式方面是透過POST一次接收到所有資料,也比較單純些。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.153.19

02/24 00:06, , 1F
謝謝M大詳細的解說~我先嘗試看看 非常謝謝囉!!
02/24 00:06, 1F

02/25 14:31, , 2F
我也推薦使用Javascript,節省伺服器資源跟實做複雜度
02/25 14:31, 2F
文章代碼(AID): #17m3q05R (PHP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 3 之 9 篇):
文章代碼(AID): #17m3q05R (PHP)