1

Zend Form で奇妙な動作が発生しています。「選択」ボタンで入力するフィールドは、データベースでは空 (NULL) のままで、1 つのフィールドの値が別のフィールドに入れられます。これが私のコードです:

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));
}

1 つのフィールドに間違った値が入力されている理由と、データベース内のいくつかのフィールドが空のままである理由がわかりましたか? ありがとう。

4

2 に答える 2

0

次の行で:

$chef->setValue($selected);

$selected はどこから来たのですか?

于 2012-05-17T22:53:29.330 に答える
0

$form->populate($dataFromDb or $_POSTdata)値 IMO を埋めるために使用する必要があります。

于 2012-05-18T21:11:11.283 に答える