3
我目前正在创建一个zend表单状态下拉列表让用户更新他们的状态。需要帮助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);
}
}
非常感谢!现在完美工作:) – user648198 2011-03-28 15:07:58