2012-05-17 3 views
1

제 젠드 폼에 이상한 행동이 있습니다. "select"버튼으로 채울 필드는 데이터베이스에 비어있는 채로 있고 (NULL) 그 중 하나의 값은 다른 필드에 들어갑니다. 다음은 내 코드입니다 :Zend_Form_Element_Select의 이상한 동작

public function init() 
{ 
    $this->setName('projet'); 
    $id = new Zend_Form_Element_Text('codeProjet'); //works great 
    $id->setLabel('Code du Projet'); 
    $nomproj = new Zend_Form_Element_Text('nomProjet'); //is filled with the codeEntreprise value 
    $nomproj->setLabel('Nom du Projet') 
    ->setRequired(true) 
    ->addFilter('StripTags') 
    ->addFilter('StringTrim'); 
    $deb = new Zend_Form_Element_Text('dateDebut'); //works great 
    $deb->setLabel('Date du début') 
    ->setRequired(true) 
    ->addFilter('StripTags') 
    ->addFilter('StringTrim'); 
    $fin = new Zend_Form_Element_Text('dateFin'); //works great 
    $fin->setLabel('Date de fin') 
    ->setRequired(true) 
    ->addFilter('StripTags') 
    ->addFilter('StringTrim'); 
    $montant = new Zend_Form_Element_Text('montantPrevu'); //works great 
    $montant->setLabel('Montant prévu') 
    ->setRequired(true) 
    ->addFilter('StripTags') 
    ->addFilter('StringTrim'); 
    $chef = new Zend_Form_Element_Select('matriculeChef'); //remains empty 
    $options=array('select'=>'[select]'); 
    $chef->setLabel('Chef de Projet') 
    ->setRequired(true); 

    $boss = new Application_Model_DbTable_Developpeur(); 
    foreach($boss->fetchAll() as $p) 
     $options[$p['matricule']]=$p['prenom'].' '.$p['nom']; 
    var_dump($options); 
    $chef->addMultioptions($options); 
    $chef->setValue($selected); 

    $boite = new Zend_Form_Element_Select('codeEntreprise'); //remains empty 
    $option=array('select'=>'[select]'); 
    $boite->setLabel('Nom de l\'entreprise'); 
    $entr = new Application_Model_DbTable_Entreprise(); 
    foreach($entr->fetchAll() as $p) 
     $option[$p['codeEntreprise']]=$p['nom']; 
    var_dump($option); 
    $boite->addMultioptions($option); 

    $envoyer = new Zend_Form_Element_Submit('envoyer'); 
    $envoyer->setAttrib('id', 'boutonenvoyer'); 

    $this->addElements(array($id, $nomproj,$deb,$fin,$montant,$chef,$boite, $envoyer)); 
} 

일부는 데이터베이스에서 비어 있습니다 이유를 하나 개의 필드가 잘못된 값으로 채워 왜 어떤 생각을 가지고 있습니까, 그리고? 감사합니다. . 다음 줄에

+0

변수 이름을 확인하면 같은 범위에서 변수를 재사용하고있는 것입니다. '$ p'와'$ options'는 같은 범위에있는 여러 요소에 사용되고 있습니다. – RockyFord

답변

0

은 :

$chef->setValue($selected); 

$에서 나오는 곳을 선택?

0

IMO 값을 채우려면 $form->populate($dataFromDb or $_POSTdata)을 사용해야합니다.