Re: [請益] submit後,亂數值跑掉
※ 引述《saininniang (sob)》之銘言:
: ※ 引述《alpe (薛丁格的貓)》之銘言:
: : 你先看看你的程式流程... 你就會發現...
: : 產生亂數的程式是" A " 好了
: : show html 是 " B "
: : check number in array " C ".
: : A - B - C -> html(client)-post-> A - B - C (問題是你只要跑 C 這段)
: 抱歉
: 我不懂你說的意思
: 我重新陳述我的程式概念
: part1:建立陣列,用for迴圈丟亂數給陣列,如此一來,產生了一組亂數陣列
: part2:按submit後,去處理亂數陣列(做一些判斷等功能)
: 我現在的問題是
: 按submit後,那整組亂數陣列又會變成新的一組亂數陣列
: 這樣的話,不是我原先要的那組亂數陣列
: 我不知道要如何改進
你的程式.. 每次 loading.. 都會重複執行黃色的區塊
所以才會一再產生新的陣列..
----------------------------------------------------
// 產生亂數陣列
// 顯示表單
if(isset($_POST['n']))
// 處理亂數陣列
----------------------------------------------------
如果要避免重複,應該於產生亂數陣列之前做些判斷..
----------------------------------------------------
if(!isset($_POST['n'])) // 如果表單尚未被 submit
// 產生亂數陣列
//顯示表單
if(isset($_POST['n']))
// 處理亂數陣列
-----------------------------------------------------
上述的流程可以確保在表單被 submit 之後,不會再次產生新的陣列
然而會有一個問題:如果你的亂數陣列不是儲存在 session 變數中
發送表單之後,雖不重複產生亂數陣列,但因變數的生命週期已過
所以會抓不到亂數陣列。
至少有兩種解決方式,一是儲存在 session 中,另一種是將產生出
來的亂數陣列儲存在表當之中
( 例:陣列可以用 base64_encode(serialize($rand_array));轉成字串儲存,
解碼則逆向操作 unserialize(base64_decode($_POST['rand_array']));
當然也可以存到資料庫或cookie中,方式不少端看你要做什麼。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.119.199.121
※ 編輯: foxzgerald 來自: 140.119.199.121 (11/16 19:45)
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章