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