簡體   English   中英

需要Zend表格的幫助

[英]Need Help with Zend Form

我正在創建一個zend表單狀態下拉列表,讓用戶更新其狀態。

所有狀態值都來自數據庫。 使用getProviderQuoteStatus($ providerId,$ quoteId,$ quoteStatusId)方法確定用戶可以使用的狀態。

我目前面臨的問題是表單何時通過驗證過程。

'1' was not found in the haystack (因為狀態值填充在控制器中而不是表單本身,因此providerQuoteStatus表單元素數組為空)。 任何人都可以幫助我如何解決這個問題?

非常感謝提前!

  private function getProviderQuoteStatusForm()
    {

             $form = new Application_Form_ProviderQuoteStatus(array(
             'action' => '/leads/update-Provider-Quote-Status'
             ,'method' => 'post',
             ));

             return $form;
    }

private function getProviderQuoteStatus($providerId,$quoteId,$quoteStatusId)
    {

             $form = $this->getProviderQuoteStatusForm();

            $providerQuoteStatus = new Application_Model_DbTable_ProviderQuoteStatus();
            $providerQuoteStatusValues = $providerQuoteStatus->                   
                                         getProviderQuoteStatusUpdateValues ($quoteStatusId);   

           $form->getElement('providerQuoteStatus')->addMultiOptions($providerQuoteStatusValues);
           $form->getElement('providerQuoteStatus')->setValue($quoteStatusId);
           $form->getElement('quoteId')->setValue($quoteId); // set Quote Id to the hidden field
         return $form;
    }





    public function updateProviderQuoteStatusAction()
    {

                $form = $this->getProviderQuoteStatusForm(); // Status Update dropdown box
                $this->view->form = $form;

           if ($this->getRequest()->isPost())
            { // is post type request has been made
                $formData = $this->getRequest()->getPost();


                if ($form->isValid($formData))
                        { // form elements has been validated

                                  $quoteId = $form->getValue('quoteId');
                                  $providerQuoteStatus = $form->getValue('providerQuoteStatus');
                                     $this->_helper->redirector('lead'); // redirect back
                                 // $this->_forward('leads');
                        }
                           $form->populate($formData);

            }
    }

取自Zend網站

默認情況下,此元素注冊一個InArray驗證器,該驗證器驗證已注冊選項的數組鍵。 您可以通過調用setRegisterInArrayValidator(false)或將FALSE值傳遞給registerInArrayValidator配置鍵來禁用此行為。

我之前遇到過這個問題,並且禁用此默認驗證器可以解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM