作者fillano (冒牌费大公)
看板PHP
标题Re: [请益] 如何在submit後的页面查询前一页的form …
时间Thu Dec 27 17:35:55 2007
我最近刚好做了一个类似的东西,我的解决办法是用物件导向,顺便拿来练习
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