Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodolfo TI

Ao digitar dois códigos completar os outros campos

Recommended Posts

Bom dia pessoal estou com um formulaário que tem 6 campos apenas:

 

Nº Prontuario:
Nº do atendimento
Nome:
CPF:
Nome da Mãe
Documento:
Gostaria de fazer a seguinte tarefa, após digitar os dois primeiros campos, os outros fossem completados, já tenho a view no banco e o sql que retorna esses dados preciso mesmo saber qual função js faria isso, achei algumas mas com tabelas, utilizando pesquisas em tabelas. Precisaria de uma que preenchesse após digitar os dois códigos e dessa uma mensagem caso fossem inválidos.
Espero que tenham entendido minha dúvida, caso precisem de mais informações, como código fonte, disponibilizo sem problemas.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma forma de fazer isso, é enviar um ajax para o seu php que vai fazer a pesquisa no banco e retornar um json.

 

tendo o json na resposta do ajax, basta preencher os campos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por exemplo, isso aqui:

 

http://wbruno.com.br/ajax/input-preenche-formulario-ajax/

 

fiz com apenas um campo, mas é simples adaptar para dois.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ajudou muito, brigadaçooo, fiz da seguinte forma o js,

{% block javascript %}<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script><script type="text/javascript">$(document).ready(function(){		$("input[name='num-atendimento']").blur(function(){		var prontuario 	= $("input[name='prontuario']");					var atendimento = $("input[name='atendimento']");		var nome		= $("input[name='nome']");		var cpf			= $("input[name='cpf']");		var	nomeMae 	= $("input[name='nome-mae']");			 		$( nome ).val('Carregando...');		$( cpf ).val('Carregando...');		$( nomeMae ).val('Carregando...');	 			$.getJSON('function.php',									{ prontuario: $( this ).val(), atendimento: $( this ).val() },									function( json ){											$( nome ).val( json.endereco );												$( cpf ).val( json.telefone );												$( nomeMae ).val( json.telefone );					}			);		});});</script>{% endblock %}
Passando dois parametros para a function.php, porém... não tenho um arquivo function php o que faz a consulta é uma classe DAO

 

abaixo:

<?phpnamespace GerenciadorDeDocumentos\DAO;class Documento {    private $entityManager = null;    public function setEntityManager(\Doctrine\ORM\EntityManager $entityManager) {        $this->entityManager = $entityManager;    }    public function consultaProntAtendimento($prontuario, $atendimento){    	    	$query = $this->entityManager->createQuery('select d from  GerenciadorDeDocumentos\Entity\Documento d where d.prontuario = :prontuario and d.atendimento = :atendimento');    	$query->setParameter('prontuario', $prontuario);    	$query->setParameter('atendimento', $atendimento);    	return $query->getSingleResult();    }}

Seguinte, meu sistema é feito com base em OO e MVC, as tarefas de banco são passadas para um controller e o controller passa para as classes DAO ( acho que é isso mesmo , rsrsrs, iniciantes), eu consigo colocar no "$.getJSON('function.php'," uma chamada pro método que fará isso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

no js não.

 

vc precisa de um controler php q te devolva o jSON.

Compartilhar este post


Link para o post
Compartilhar em outros sites

no js não.

 

vc precisa de um controler php q te devolva o jSON.

Beleza, fiz assim meu php :

 

public function completarCampos() {
		echo "<pre>";
	
		$prontuario = $_GET['prontuario'];
	
		$atendimento = $_GET['atendimento'];
	
	
	
		try {
				
			$daoProntuario = new DAOProntuario();
	
			$daoProntuario->setEntityManager ( $this->entityManager );
			
	
			$prontuario= $daoProntuario->consultaProntAtendimento($prontuario,$atendimento);
				
			json_encode($prontuario);
			
			var_dump($prontuario);
			exit; // até aqui funciona beleza não sei como transformar a parte abaixo pra enviar o json pro js de novo rs
			
			$arr = Array();
			if( $query->num_rows ){
					
				$arr['nome'] = $dados->endereco;
	
				$arr['telefone'] = $dados->telefone;
	
			}else{
				$arr['endereco'] = 'não encontrado';
			}
			echo json_encode( $arr );
	
		}catch ( Exception $e ) {
				
			var_dump ( $e );
		}
	}

aí vou ter que tirar o

$arr['nome'] = $dados->endereco;
    
$arr['telefone'] = $dados->telefone;

e colocar

 

$arr['nome'] = $prontuario->nome;
    
$arr['cpf'] = $prontuario->cpf;

$arr['nomeMae'] = $prontuario->nomeMae;

Compartilhar este post


Link para o post
Compartilhar em outros sites

	json_encode($prontuario);
			
	var_dump($prontuario);
	exit; // até aqui funciona beleza não sei como transformar a parte abaixo pra enviar o json pro js de novo rs
troque por:
	echo json_encode($prontuario);
	exit; // até aqui funciona beleza não sei como transformar a parte abaixo pra enviar o json pro js de novo rs

entendeu ?

 

só que há vários problemas de arquitetura ai, um método de uma classe nunca deve ter "echos" dentro dele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

entendeu ?

 

só que há vários problemas de arquitetura ai, um método de uma classe nunca deve ter "echos" dentro dele.

 

Beleza entendi, coloquei mais para "debugar" rs.

 

ficou assim

 


$(document).ready(function(){
	
	$("#num-atendimento").blur(function(){

		var prontuario 	= $("#num-prontuario");			
		var atendimento = $("#num-atendimento");
		var nome		= $("input[name='nome']");
		var cpf			= $("input[name='cpf']");
		var	nomeMae 	= $("input[name='nome-mae']");
	
		 
		$( nome ).val('Carregando...');
		$( cpf ).val('Carregando...');
		$( nomeMae ).val('Carregando...');
		
			$.getJSON('index.php?rota=acao-consulta-prontuario&prontuario=' + $( prontuario ).val() + '&atendimento=' + $( atendimento ).val(),
				
					function( data ){
						$( nome ).val('');
						$( cpf ).val('');
						$( nomeMae ).val('');
						if (data ) {
							$( nome ).val( data.nomePaciente );
							$( cpf ).val( data.cpfPaciente );
							$( nomeMae ).val( data.nomeMaePaciente );
						}
					}
			);
		});
});

Funcionando lindamente com suas dicas obrigado william, agora a duvida é tratar a Exception caso não retornar valor, mas daí acho que é assunto de outro tópico certo?

 

Desde já agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.