Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia amigos, como vão?
Em um formulário de cadastro a gente exibe um campo select com diversas opcoes, onde será salvo apenas o valor numério da opção selecionada... pois bem...
Na view, para apresentação deste dado, não queremos apresentar o valor numérico ao usuário, mas sim uma string... então fazemos o seguinte:
Listamos os dados da tabela deste campo <select> em particular:
É assim que fica o código-fonte html:
<div class="input select required">
<label for="UserHowToMet">Como nos conheceu?</label>
<select name="data[user][how_to_met]" class="c_indication" id="UserHowToMet">
<option value="">-- Selecione --</option>
<option value="1">Google</option>
<option value="2">Yahoo</option>
<option value="3">Ask</option>
<option value="001">Amigo</option>
<option value="002">Outro</option>
</select>
</div>
action de registro:
$this->loadModel('Indication');
$c_indic = $this->Indication->find('list');
$indications = array(
$c_indic,
'001'=>__('Amigo', true),
'002'=>__('Outro', true),
);
view de registro:
echo $this->Form->input(
'how_met', array( 'label'=>__('Como conheceu', true), 'options'=>$indications, 'empty'=>__('-- Selecione --', true) )
);
O mesmo fiz para a view destes registros...
Exemplo:
$this->loadModel('Indication');
$c_indic = $this->Indication->find('list');
$indication = array(
$c_indic,
'001'=>__('Amigo', true),
'002'=>__('Outro', true),
);
E em seguida, apresentamos na view:
<?php echo $indication[ $user['User']['how_to_met'] ]; ?>
Esta foi a solução que encontrei.... mas existe um problema... Se no formulário de cadastro, fosse selecionado um destes campos:
'001'=>__('Amigo', true), '002'=>__('Outro', true),
tudo correria bem, a resposta seria apresentada, mas se fosse um dos campos da tabela "indications", geraria o seguinte erro:
Notice (8): Undefined index: 1 [APP/views/users/view.ctp, line 60]
E se eu fiz isto:
<?php echo $indication[0][ $user['User']['how_to_met'] ]; ?>
simplesmente inverte os warnings....
Então peço uma dica de como proceder, para inserir outros campos no array, de modo que estes, não entrem em conflito nos dados.. ;)
Obrigado a todos que mantém o fúrm de cakePhp ativo! =)
Carregando comentários...