Re: [請益] 如何在submit後的頁面查詢前一頁的form …

看板PHP作者 (冒牌費大公)時間18年前 (2007/12/27 17:35), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串8/9 (看更多)
我最近剛好做了一個類似的東西,我的解決辦法是用物件導向,順便拿來練習 Command Pattern 簡單地說,封裝產生不同表單跟不同接收表單資料的邏輯為不同的Command類別物件 在產生表單的邏輯中,用hidden欄位來標示不同的Command 在接收表單的邏輯中,依靠傳來的hidden欄位來執行不同的command來處理表單資料 這樣需要三個類別來協作: class CommandExecuter { var $command=array(); function addCommand($command,&$obj) { $this->command[$command] = & $obj; } function render($command) { $this->command[$command]->render(); } function deal($command) { $this->command[$command]->deal(); } } class Command { function render() { 產生表單 echo "<input type='hidden' name='COMMAND' value='xxx'>"; ...... echo "</form>"; } function deal() { 處理表單資料 } } class CommandAssembler { function getCommandExecuter(){ $tmp = new CommandExecuter(); $tmp->addCommand("form1",$command1); return $tmp; } } 在產生表單的頁面,呼叫 $form = CommandAssembler::getCommandExecuter(); foreach($form->command as $command) { $command->render(); } 在接收表單的頁面,呼叫 $deal = CommandAssembler::getCommandExecuter(); $deal->command[$_POST['COMMAND']]->deal(); 結構大至上像這樣,不過我是為了做搜尋的功能做的。也許不一定符合需求。 (另外基於安全性,還需要做額外的處理) -- Sapere Aude! 這就是啟蒙運動的口號! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.250.95.16
文章代碼(AID): #17St7_uL (PHP)
討論串 (同標題文章)
文章代碼(AID): #17St7_uL (PHP)