Re: [請益] 如何在submit後的頁面查詢前一頁的form …
我最近剛好做了一個類似的東西,我的解決辦法是用物件導向,順便拿來練習
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
討論串 (同標題文章)
完整討論串 (本文為第 8 之 9 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章
154
159