我使用Zend深化發展的web應用程序,我跑出去的想法,我有一個問題。簡而言之,我試圖在彈出窗口(Fancybox,lightbox,colorbox或其他...)中添加一個聯繫表單。整個事情工作正常,就是說它在彈出窗口中顯示聯繫表單並允許發送電子郵件。然而,每當有錯誤(未填充輸入或填寫錯誤的),我無法獲取要顯示在彈出的這些錯誤(它實際上重定向我回一個正常顯示(表單視圖+佈局),以顯示錯誤Zend的形式在彈出(的fancybox,燈箱....)
這也許是可能的,但我現在認爲,也許我可以更容易地將我的錯誤消息帶到一個新的彈出窗口(聯繫頁面,填充不當,會導致錯誤彈出頁面...)。我認爲這。替代可能看起來很酷,但我有真正的麻煩做它現在我真正的問題是:我們能否真正做到上的彈出形式,使用Facybox(Lighbox或任何其他實際...只是希望我的彈出式)和Zend任何大師outhere? 非常感謝 這裏是代碼:
鏈接例如:
<a class="popLink" href=" <?php echo $this->url(array('module'=>'default', 'controller'=>'contact', 'action'=>'sendmail')).'?ProID='.$this->proProfil->getProID(); ?>">Contact</a>
動作:
public function sendmailAction()
{
$this->_helper->layout()->setLayout('blank');
$request = $this->getRequest();
$proID = $this->_getParam("ProID");
$professionalsList = new Model_DirPro();
$proName = $professionalsList->getProInfo($proID);
$translate = Zend_Registry::get('translate');
Zend_Validate_Abstract::setDefaultTranslator($translate);
Zend_Form::setDefaultTranslator($translate);
$contactform = new Form_ContactForm();
$contactform->setTranslator($translate);
$contactform->setAttrib('id', 'contact');
$this->view->contactform = $contactform;
$this->view->proName = $proName;
if ($request->isPost()){
if ($contactform->isValid($this->_getAllParams())){
$mailSubject = $contactform->getValue('mailsubject');
if ($contactform->mailattcht->isUploaded()) {
$contactform->mailattcht->receive();
//etc....
形式:
class Form_ContactForm extends Zend_Form
{
public function init()
{
$this->setName("email");
$this->setMethod('post');
$this->addElement('text', 'mailsubject',
array('filters' => array('StringTrim'),
'validators' => array(), 'required' => true, 'label' => 'Subject:'));
$mailattcht = new Zend_Form_Element_File('mailattcht');
$mailattcht->setLabel('Attach File:')->setDestination(APPLICATION_PATH.'/../public/mails');
$mailattcht->addValidator('Count', false, 1);
$mailattcht->addValidator('Size', false, 8000000);
$mailattcht->addValidator('Extension', false,
'jpg,png,gif,ppt,pptx,doc,docx,xls,xslx,pdf');
$this->addElement($mailattcht, 'mailattcht');
$this->addElement('textarea', 'mailbody',
array('filters' => array('StringTrim'),
'validators' => array(), 'required' => true, 'label' => 'Body:'));
$this->addElement('submit', 'send',
array('required' => false, 'ignore' => true, 'label' => 'Send'));
$this->addElement('hidden', 'return', array(
'value' => Zend_Controller_Front::getInstance()->getRequest()->getRequestUri(),
));
$this->setAttrib('enctype', 'multipart/form-data');
}
}