J'ai un problème avec mon application CakePHP. Je veux récupérer les valeurs de la table nommée choix que je récupère correctement. Les valeurs arrivent correctement dans la partie contrôleur. Mais dans ma partie de vue, il est montrant que les dernières valeurs récupérées ...CakePHP views part
Mon code est:
function view($formid = null,$userid=null)//viewPage
{
$this->set('Forms',$this->Form->find('all',array('conditions'=>array('Form.id'=>$formid),'fields'=>array('Form.name'))));
$this->data['Form']['id']=$formid;
$viewfields=$this->Form->viewForms($this->data);
$this->set('viewfields',$viewfields);//retreives all the Attributes from the Form (like attribute_id,,label)
foreach($viewfields as $attributeid)://For each attribute id , i am checking if there is any choices in the Table Choices
$choices=$this->Choice->find('all',array('conditions'=>array('Choice.attribute_id'=>$attributeid['Attribute']['id'],'Choice.label'=>$attributeid['Attribute']['label']),'fields'=>array('Choice.choice','Choice.label')));
if(!empty($choices)){
$this->set('options',$choices);
foreach($choices as $c):
echo $c['Choice']['label'];
echo $c['Choice']['choice'];
endforeach;
}
endforeach;
}
Les travaux ci-dessus et dans la partie du contrôleur, mais si j'utilise:
foreach($options as $c):
echo $c['Choice']['label'];
echo $c['Choice']['choice'];
endforeach;
Seules les dernières valeurs sont affichées ... Pourquoi est-ce le cas? Par exemple. ma table d'attributs contient des entrées comme:
id form_id label type sequence_no
1 1 Name text 1
2 1 age number 2
3 1 gender dropdown 3
4 1 email-id email 4
5 1 qualification dropdown 5
Dans ma table de choix:
id attribute_id label choice sequence
1 3 gender male 1
2 3 gender female 2
3 5 qualification BE 1
4 5 qualification ME 2
5 5 qualification MBA 3
Dans le view.ctp
que je reçois uniquement les entrées de qualification. Pourquoi cela est-il ainsi?
Edit:
Ma page de vue est comme:
<?php foreach ($viewfields as $r): ?>
if($r['Attribute']['type']=='text'||$r['Attribute']['type']=="email"){
echo $form->input($r['Attribute']['label'], array('id'=>$r['Attribute']['id'],'name'=>$r['Attribute']['label'],'type'=>'text','style' => 'width:' . $r['Attribute']['size'] . 'px'));
?><br>
}
else if($r['Attribute']['type']=='dropdown')
{
//here i want the Male and female for the label gender and for the label Qualification as BE ME MBA
echo $form->input($r['Attribute']['label'], array('id'=>$r['Attribute']['id'],'name'=>$r['Attribute']['label'],'options' => array(1,2,3,4,5)));
}
<?php endforeach; ?>
pour un échantillon que je l'ai utilisé 12345
comme des options ..
dans cette boucle elseif(dropdown)
j'ai essayé les options comme vous le dites comme
foreach($options as $c):
echo $c['Choice']['label'];
echo $c['Choice']['choice'];
echo $c[1]['Choice']['label'];
echo $c[1]['Choice']['choice'];
endforeach;
Mais je reçois les erreurs et aussi le tableau entier est affiché mais je ne veux que les options de genre pour l'étiquette et les options de qualification pour les qualifications.