textarea activeDropDownList e foreach

Senhores,

Tenho um esquema que eu preciso criar atualizar informações dinamicamente.




<?php

foreach ($actionFpfativid as $key => $allFpfativid) :

 		// $modelFpfativid = new Fpfativid;

		$fpfativid = Fpfativid::model()->find("nr_verativid=:nr_verativid",

                                                     array(":nr_verativid"=>$allFpfativid->nr_verativid));




// esse cara eu não consigo colocar as informações trazidas do banco via foreach.

echo $form->textArea($modelFpfativid, "ds_orientacao[]", array('style'=>'width: 570px; height: 80px;'));


// esse cara eu não consigo "checkar" ele.

echo CHtml::activeDropDownList($modelFpfativid,"nr_tipofreq[]", CHtml::listData($tipofreqs, 'nr_tipofreq', 'nm_tipofreq'),array('empty' => '- Selecione -', 'style'=>'width:120px'));


endforeach;

?>



alguém pode me ajudar com isso?

att,

como usar o Model com isso

"campo[ ]"

dentro do textArea

??




<?php

foreach ($POST  as $campo) {

  $id = Teste::Model()->find($campo->id);

  $model->campo = $id->campo;

  echo $form->textArea($model, "campo[]");

}

?>



seria basicamente isso o problema

Não entendi. Vc resolveu ou não?

Não consegui entende p qe vc quer fazer com o textArea exatamente

Quanto ao codigo acima, eu usaria assim(Assumindo que sua chave primária seja ID):


<?php

foreach ($POST  as $campo) {

  $id = Teste::Model()->find($campo->id);

  $model->campo = $id->campo;

  echo $form->textArea($model, "[{$model->id}]campo");

}

?>

Seria esse o caso comentado no Código.

eu troquei as variaveis acho que vai ficar melhor.




<?php

foreach ($POST  as $campo) {

  $busca = Teste::Model()->find($campo->id);


  // Eu quero exibir esse valor $busca->campo dentro do "campo[]"

  $model->campo = $busca->campo;


  // $model->campo recebe o valor vindo do busca.

  echo $form->textArea($model, "campo[]");

}

?>



mas com [ ] ele não exibe …

Tenta:


<?php

foreach ($POST  as $campo) {

  $busca = Teste::Model()->find($campo->id);


  // Eu quero exibir esse valor $busca->campo dentro do "campo[]"

  //$model->campo = $busca->campo;


  // $model->campo recebe o valor vindo do busca.

   echo $form->textArea($model, "campo[]", array('value'=>$busca->campo));

}

?>

A grosso modo seria isso …

segue a rima…




<textarea id="#" name="campo[]" value="$busca->campo">


// sem nada aqui ...


</textarea>



Resposta Para,

activeDropDownList




<?php echo CHtml::activeDropDownList($model,"campoform",

                CHtml::listData($busca, 'id', 'campo'),

		array(

	    		'empty'   => '- Selecione -', 

	     		'style'   =>'width:120px',

                        // Aqui a Magica acontece ...

	   		'options' => array($model->campo => array('selected'=>'selected'))

  		)

); ?>



Carai, nem me liguei que era um textArea, e não tem value mesmo … faz o mais fácil:


<?php

foreach ($POST  as $campo) {

  $busca = Teste::Model()->find($campo->id);


  // Eu quero exibir esse valor $busca->campo dentro do "campo[]"

  //$model->campo = $busca->campo;


  // $model->campo recebe o valor vindo do busca.

   echo $form->textArea($busca , "campo", array('name'=>CHtml::activeName($model, 'campo[]'));

}

?>

Ao inves de fazer o TextArea A partir do model que vc quer gravar, faz a partir do model que vc quer listar e muda o nome só.

Daniel

Perfaito …

agora sim ta certo mas deu um outro erro…




CDbCommand falhou ao executar o comando SQL: SQLSTATE[23505]: Unique violation: 7 ERROR: duplicate key value violates unique constraint



no caso eu uso o comando save()




if ( $model->validate() )

{

    $model->save();

}



Daniel de qualquer forma Obrigado!