Ir para conteúdo
Fórum Script Brasil
  • 0

Problema para esconder campos de formulario PHP


Carlos Colon

Pergunta

Bom dia pessoal,

Tentei de tudo e realmente não sei fazer isso.

Trabalho em uma ONG e por termos um orçamento reduzido, não podemos pagar um especialista em programação para nos ajudar com isso.

Programo pouca coisam porém não sei quase nada de javascript...

Temos um formulário para cadastrar pacientes que fica nesse link:

http://www.abrale.org.br/registrar

Ele foi desenvolvido na plataforma do site que é Sinfony, eu consigo alterar as opção pelo Banco de dados e alterar a descrição pelo codigo PHP dele, porém precisamos que alguns campos estejam disponíveis apenas se marcar uma opção. O problema é que essas opção ficam no banco de dados, e não sei como fazer um codigo javascript que faça tal função.

Segue o codigo inteiro da página do form:

<?php echo $form->renderHiddenFields(false) ?>
<?php echo $form->renderGlobalErrors() ?>
<fieldset>
    <legend><?php echo __('Dados pessoais') ?></legend>
    <?php echo $form['nome']->renderRow(array('class' => "text", 'size' => "60")) ?>
    <?php echo $form['email']->renderRow(array('class' => "text", 'size' => "60")) ?>
    <?php echo $form['cpf']->renderRow(array('class' => "text")) ?>
    
    <label><strong><?php echo __('Telefones') ?>:</strong></label><br /><br />
    <?php echo $form['telefone_res']->renderRow(array('class' => "text")) ?>
    <?php echo $form['telefone_cel']->renderRow(array('class' => "text")) ?>
    <br />

    <?php echo $form['sexo']->renderRow() ?>
    <?php echo $form['estado_civil']->renderRow() ?>
    <?php echo $form['nascimento']->renderRow() ?>
</fieldset>

<fieldset>
    <legend><?php echo __('Endereço') ?></legend>
    <?php echo $form['endereco']->renderRow(array('class' => "text", 'size' => "60")) ?>
    <?php echo $form['numero']->renderRow(array('class' => "text", 'size' => "10")) ?>
    <?php echo $form['complemento']->renderRow(array('class' => "text")) ?>
    <?php echo $form['bairro']->renderRow(array('class' => "text", 'size' => "60")) ?>
    <?php echo $form['cidade']->renderRow(array('class' => "text", 'size' => "30")) ?>
    <?php echo $form['estado']->renderRow(array('class' => "text")) ?>
    <?php echo $form['cep']->renderRow(array('class' => "text")) ?>
</fieldset>

<fieldset>
	<legend><?php echo __('Dados para ABRALE') ?></legend>
    <?php echo $form['sfGuardUser']['groups_list']->renderRow() ?>
</fieldset>

<fieldset>
    <legend><?php echo __('Você é paciente ou cuidador? Então preencha também aqui abaixo!') ?></legend>
    <?php echo $form['cuidador']->renderRow(array('class' => "text", 'size' => "60")) ?>
    <?php echo $form['cuidador_sexo']->renderRow() ?>
    <?php echo $form['cuidador_tipo']->renderRow() ?>
    <?php echo $form['cuidador_tipo_outro']->renderRow(array('class' => "text", 'size' => "60")) ?>
    <?php echo $form['doenca']->renderRow(array('class' => "text", 'size' => "60")) ?>
    <?php echo $form['data_diagnostico']->renderRow() ?>    
    <?php echo $form['centro']->renderRow(array('class' => "text", 'size' => "60")) ?>
    <?php echo $form['cuidador_medico']->renderRow(array('class' => "text", 'size' => "60")) ?>
    <?php echo $form['medicamentos']->renderRow(array('class' => "text", 'size' => "60")) ?>
    <?php echo $form['situacao']->renderRow() ?>
    <?php echo $form['tratamento']->renderRow() ?>
    <?php echo $form['transplante_medula']->renderRow() ?>
    <?php echo $form['cobertura_tratamento']->renderRow() ?>
</fieldset>

<fieldset>
    <legend><?php echo __('Você é médico ou prof. da saúde? Então preencha também aqui abaixo!') ?></legend>
    <?php echo $form['medico_centro']->renderRow(array('class' => "text", 'size' => "60")) ?>
    <?php echo $form['medico_especialidade']->renderRow(array('class' => "text")) ?>
    <?php echo $form['medico_onco']->renderRow() ?>
    <?php echo $form['medico_registro']->renderRow(array('class' => "text", 'size' => "60")) ?>
</fieldset>

<fieldset>
    <legend><?php echo __('Observação') ?></legend>
    <?php echo $form['observacao']->renderRow(array('cols' => 60)) ?>
</fieldset>

<fieldset>
    <?php echo $form['sfGuardUser']->renderHiddenFields() ?>
    <legend><?php echo __('Dados de acesso ao site') ?></legend>
    <?php echo $form['sfGuardUser']['username']->renderRow(array('class' => "text", 'size' => "30")) ?>
    <?php echo $form['sfGuardUser']['password']->renderRow(array('class' => "text", 'size' => "30")) ?>
    <?php echo $form['sfGuardUser']['password_again']->renderRow(array('class' => "text", 'size' => "30")) ?>
</fieldset>

O que preciso é que na parte do site que aparece:

voce.png

Quando a pessoa marcar que é Cuidador ou Paciente, aparecer somente os campos que já estão lá para ele preencher.

Se ele marcar que é médico, deve apenas aparecer os campos de médico

E etc...

Entendo que posso fazer uma div nesses campos e jogar num javascript...

Porém não sei nem por onde começar com esse codigo javascript.

Fico no aguardo, e agradeço desde já pela atenção.

Editado por Carlos Colon
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Saudações Carlos, vamos ver se te ajudo meu amigo,

O que eu penso em fazer é:

1.'englobar' em uma 'div' os campos destinados a 'cuidador e pacientes' option value='3' e '4'

2.'englobar' em uma 'div' os campos destinados a 'médicos e profissionis da area' option value='5' e '6'

Como não sei como fazer aparecer sumir em um formulário que é criado dinamicamente, minha solução é via JQUERY

codigo:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$(document).ready(function(){

$('#cms_usuario_sfGuardUser_groups_list').change(function(){
	a=$(this).val();
	if ((a==3) || (a==4)) {  $('#container_medico').fadeOut('fast',function() {$('#container_cuidador').fadeIn('fast'); });}
	if ((a==5) || (a==6)) {  $('#container_cuidador').fadeOut('fast',function() {$('#container_medico').fadeIn('fast'); });}
});
 });
</script>


<?php echo $form->renderHiddenFields(false) ?>
<?php echo $form->renderGlobalErrors() ?>
<fieldset>
    <legend><?php echo __('Dados pessoais') ?></legend>
    <?php echo $form['nome']->renderRow(array('class' => "text", 'size' => "60")) ?>
    <?php echo $form['email']->renderRow(array('class' => "text", 'size' => "60")) ?>
    <?php echo $form['cpf']->renderRow(array('class' => "text")) ?>
    
    <label><strong><?php echo __('Telefones') ?>:</strong></label><br /><br />
    <?php echo $form['telefone_res']->renderRow(array('class' => "text")) ?>
    <?php echo $form['telefone_cel']->renderRow(array('class' => "text")) ?>
    <br />

    <?php echo $form['sexo']->renderRow() ?>
    <?php echo $form['estado_civil']->renderRow() ?>
    <?php echo $form['nascimento']->renderRow() ?>
</fieldset>

<fieldset>
    <legend><?php echo __('Endereço') ?></legend>
    <?php echo $form['endereco']->renderRow(array('class' => "text", 'size' => "60")) ?>
    <?php echo $form['numero']->renderRow(array('class' => "text", 'size' => "10")) ?>
    <?php echo $form['complemento']->renderRow(array('class' => "text")) ?>
    <?php echo $form['bairro']->renderRow(array('class' => "text", 'size' => "60")) ?>
    <?php echo $form['cidade']->renderRow(array('class' => "text", 'size' => "30")) ?>
    <?php echo $form['estado']->renderRow(array('class' => "text")) ?>
    <?php echo $form['cep']->renderRow(array('class' => "text")) ?>
</fieldset>

<fieldset>
	<legend><?php echo __('Dados para ABRALE') ?></legend>
    <?php echo $form['sfGuardUser']['groups_list']->renderRow() ?>
</fieldset>
<div id="container_cuidador" style="display: none;">
<fieldset>
    <legend><?php echo __('Você é paciente ou cuidador? Então preencha também aqui abaixo!') ?></legend>
    <?php echo $form['cuidador']->renderRow(array('class' => "text", 'size' => "60")) ?>
    <?php echo $form['cuidador_sexo']->renderRow() ?>
    <?php echo $form['cuidador_tipo']->renderRow() ?>
    <?php echo $form['cuidador_tipo_outro']->renderRow(array('class' => "text", 'size' => "60")) ?>
    <?php echo $form['doenca']->renderRow(array('class' => "text", 'size' => "60")) ?>
    <?php echo $form['data_diagnostico']->renderRow() ?>    
    <?php echo $form['centro']->renderRow(array('class' => "text", 'size' => "60")) ?>
    <?php echo $form['cuidador_medico']->renderRow(array('class' => "text", 'size' => "60")) ?>
    <?php echo $form['medicamentos']->renderRow(array('class' => "text", 'size' => "60")) ?>
    <?php echo $form['situacao']->renderRow() ?>
    <?php echo $form['tratamento']->renderRow() ?>
    <?php echo $form['transplante_medula']->renderRow() ?>
    <?php echo $form['cobertura_tratamento']->renderRow() ?>
</fieldset>
</div>
<div id="container_medico" style="display: none;">
<fieldset>
    <legend><?php echo __('Você é médico ou prof. da saúde? Então preencha também aqui abaixo!') ?></legend>
    <?php echo $form['medico_centro']->renderRow(array('class' => "text", 'size' => "60")) ?>
    <?php echo $form['medico_especialidade']->renderRow(array('class' => "text")) ?>
    <?php echo $form['medico_onco']->renderRow() ?>
    <?php echo $form['medico_registro']->renderRow(array('class' => "text", 'size' => "60")) ?>
</fieldset>
</div>
<fieldset>
    <legend><?php echo __('Observação') ?></legend>
    <?php echo $form['observacao']->renderRow(array('cols' => 60)) ?>
</fieldset>

<fieldset>
    <?php echo $form['sfGuardUser']->renderHiddenFields() ?>
    <legend><?php echo __('Dados de acesso ao site') ?></legend>
    <?php echo $form['sfGuardUser']['username']->renderRow(array('class' => "text", 'size' => "30")) ?>
    <?php echo $form['sfGuardUser']['password']->renderRow(array('class' => "text", 'size' => "30")) ?>
    <?php echo $form['sfGuardUser']['password_again']->renderRow(array('class' => "text", 'size' => "30")) ?>
</fieldset>



No codigo acima, acrescentei os scripts (colocar no começo da página) e as divs nos campos

Link para o comentário
Compartilhar em outros sites

  • 0

Olá funcionou perfeitamente, você pode me ajudar agora refinar? rsrs

no campo "Você é" temos as opções:

Paciente

Cuidador

Médico

Profissional da Saúde

Interessado na Causa

Familiar

Nesse campo agora vem por padrão SELECIONE, nessa opção não deve aparecer nenhum dos campos de médicos e pacientes.

Assim como, interessado na causa e familiar também não mostre nada...

E profissional da saúde e médico apareça o campo correspondente e paciente e cuidador respectivamente...

Bom, você já fez tudo rsrs, só me ajuda com esses detalhes.

Obrigado desde já.

É fácil para você vir pra São Paulo? rsrs, posso tentar arrumar 1 par de ingressos para você ir ver o musical do Rei Leão, é fantástico!

Editado por Carlos Colon
Link para o comentário
Compartilhar em outros sites

  • 0

Carlos boa tarde,

veja que esta minha solução não é dinâmica! Se os campos do select tiverem seus valores alterados, o funcionamento irá alterar.

Por exemplo: Antes, cuidador e paciente tinham valores 3 e 4 e agora estão com valores 4 e 10!

Com essa alteração, é necessário alterar o codigo que te passei

if ((a==4) || (a==10)) {  $('#container_medico').fadeOut('fast',function() {$('#container_cuidador').fadeIn('fast'); });}
if ((a==5) || (a==6)) {  $('#container_cuidador').fadeOut('fast',function() {$('#container_medico').fadeIn('fast'); });}

A opção selecione está com codigo 3, então acrescente:

if ((a==7) || (a==8) || (a==3)) {  $('#container_medico').fadeOut('fast');  $('#container_cuidador').fadeOut('fast');  }

e mantenha os divs que te mandei completos, assim o formulario aparece escondido, só aparecendo quando o usuário muda de opção:

<div id="container_cuidador" style="display: none;">
<div id="container_medico" style="display: none;">

Obrigado pela oferta! Mas é muito difícil eu ir para Sampa! :D

Qualquer coisa posta ae!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...