2015-03-13 64 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

谢谢,这是我需要的答案! – 2015-03-13 14:11:14

+1

不客气。感谢您的回报,祝您好运! :) – doydoy44 2015-03-13 14:12:27