2015-03-13 3 views
1

Я хотел бы создать динамический Zend_Form_Element_Text, т. Е. Он примет другое имя ввода.Создать динамическое имя ввода с помощью формы Zend

У меня есть это:

$email = new Zend_Form_Element_Text('email'); 

Это создает вход с «электронной почты» в качестве имени:

<input name="email" id="email" size="20" maxlength="100" placeholder="Email" class="input" type="text"> 

Но иногда я получаю некоторые запрос внешнего POST и их поле ввода названия разные, например:

<input name="login_Email" id="email" size="20" maxlength="100" placeholder="Email" class="input" type="text"> 

Не могли бы вы направить меня, как я могу это сделать?

ответ

1

В контроллере, я предполагаю, что у вас есть что-то вроде этого, чтобы получить POST переменные:

if ($this->getRequest()->isPost()) { 
    $formData = $this->getRequest()->getPost(); 

    if ($form->isValid($formData)) { 
    .... 

Таким образом, вы можете проверить каждую переменную POST, если он совпадает, чем «электронная почта», а не равен «почте», вы можете создать новую переменную электронной почты POST

if ($this->getRequest()->isPost()) { 
    $formData = $this->getRequest()->getPost(); 

    foreach($formData as $name => $value){  
     if ($name != 'email' && preg_match("/email/i", $name)) 
      $formData['email'] = $value; 
    } 
    if ($form->isValid($formData)) { 
    ... 
+0

Спасибо, это ответ, который мне нужен! –

+1

Добро пожаловать. Спасибо за ваше возвращение и удачу! :) – doydoy44