這是我我的控制器如何防止在Zend框架中刷新頁面時提交表單?
public function invite()
{
if($this->getRequest()->isPost()){
$data_array = $this->getAllParams();
$emailList = explode(",", $data_array['emails']);
$message = $data_array['message'];
$error_emails = array();
if(sizeof($emailList) <= 1){
$this->view->message = '<div class="alert alert-danger"> Please enter more than one email address and please separate emails by a "," (comma)</div>';
}
else{
$x = 0;
foreach($emailList as $singleEmail){
if (!filter_var(trim($singleEmail), FILTER_VALIDATE_EMAIL)) {
$error_emails[] = $singleEmail;
}
else{
//send emails here
$x++;
}
}
if(sizeof($error_emails) > 0){
$email_str = implode(",",$error_emails);
if($x > 0){
$this->view->message = '<div class="alert alert-success"> Successfully Sent! </div> ';
}
$this->view->message .= '<br /><div class="alert alert-danger"> Message to this emails were not sent! <b>'.$email_str.'</b> <br /> Please enter valid emails!</div>';
}else{
$this->view->message = '<div class="alert alert-success"> Successfully Sent! </div>';
}
}
$request = $this->getRequest();
$request->setParam('emails', null);
$request->setParam('message', null);
}
}
我想我找到了解決方案的行動; 正如你所看到的我嘗試setParam方法將值設置爲null。不幸的是,這不起作用。 還未設置陣列沒有工作 - 不知道我是否做得對。 無論如何,我不想重定向。只是想解除。有人可以幫我嗎?我已經嘗試了幾個小時了。提前致謝。
嘗試頭http://php.net/manual/en/function.header.php並強制進行重新驗證。會話/令牌也是另一種選擇。 –
你是什麼原因避免重定向? – max
爲什麼使用html的字符串而不是控制器插件FlashMessenger? – Hooli