Jump to content
Sign in to follow this  
asacap1000

preencher campo Input Text com javascript

Recommended Posts

Galera salve salve a todos.

Estou com um formulário que funciona da seguinte maneira, o cliente digita o CPF/CNH do motorista e os campos seguintes são carregados automáticamente,estas informações vem do banco de dados. Caso o motorista ainda não tenha cadastro os campos permanecerão em branco aguardando o preenchimento.

O que não estou conseguindo fazer é que as informações carreguem em um input text para uma possivel digitação no campo. Com o script que eu tenho só consigo trazer as informações se o campo for um <select name...>

Segue scripts:

Primeiro html:

<script type="text/javascript">
        $(document).ready(function(){
            $('#cpf').change(function(){
                $('#validade').load('validade.php?cpf='+$('#cpf').val() );

            });
        });
    </script>


<form id="form1" name="form1" method="post" action=">

<input name="cpf" id="cpf" class="maius" value="" width="15" />


<!--OS DOIS CAMPOS ABAIXO CARREGAM NORMALMENTE AS INFORMAÇÕES PORÉM SÃO SELECT-->
<select name="nome" id="nome"></select>
<select name="cnh" id="cnh" ></select>


<!--O CAMPO ABAIXO NÃO CARREGA INFORMAÇÃO ALGUMA QUANDO MUDO PARA SELECT ELE CARREGA -->
<input type="text" name="validade" id="validade"/>


Ele realiza a pesquisa na página validade.php via js

segue:

<?php
$cpf= $_GET ['cpf'];
$connect = oci_connect("user","senha","banco");  //banco de dados oracle  

//Primeiro select busca os dados do cliente
$stmt = ociparse($connect,"select dr.name NOME, dr.cpf CPF, dr.license CNH, dr.datum_valid VALIDADE
from driver dr WHERE (dr.cpf = '$cpf' or dr.license = '$cpf')");
oci_execute($stmt,OCI_DEFAULT);  
 
   while (oci_fetch($stmt)) {

//EU PRECISO DE ALGO PARECIDO COM ISSO MAS NÃO SEI SE ESTÁ CORRETO
   echo "<input type='text' value=" . ociresult($stmt,4) . ">";

//PARA OS CAMPOS SELECTS O FORMATO ABAIXO CARREGA NORMALMENTE
echo "<option value=" . ociresult($stmt,1) . "'>" . ociresult($stmt,4) . "</option>";

}

?>



Se alguem puder me dar uma força pra resolver, acredito que seja simples mas não consegui sair do lugar.

Obrigado por enquanto

Share this post


Link to post
Share on other sites

Bom dia,

recomendo você fazer isso com ajax Json e Jquery.

de uma pesquisada que voce consegue fazer isso facilmente.

Depois de alguns testes estou utilizando o Ajax agora como você me falou só estou com um pequeno problema.

vou colocar o scritp abaixo mais resumido

index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script type="text/javascript" src="bibliotecaAjax.js"></script>
<script type="text/javascript" src="nome.js"></script>
<style type="text/css">
.maius
{
text-transform: uppercase;
}
</style>
<title>DADOS DO MOTORISTA</title>
</head>
<form action="javascript:void%200">
<label for="cnpj"><legend><strong>DIGITE O CPF OU CNH DO MOTORISTA APENAS NUMEROS</strong></label>
 <hr>
CPF/CNH:<input name="cpf" id="cpf" width="15"/>

NOME:<input name="nome" id="nome" type="text">
LICENCA:<input name="documento" id="documento" type="text">
VALIDADE:<input name="validade" id="validade" type="text">
<br />
<hr />
</form></legend>
</body>
</html>

que realiza este script

nome.js

//////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////BUSCA NOME MOTORISTA////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////

window.onload = function(){
	var cpf = document.getElementById("cpf");
	if(cpf != null)
		cpf.onblur = function() { traduz(cpf.value); }
}

function traduz(cpf){
	if(cpf) {
		var url="nome.php?nome="+encodeURIComponent(cpf);
		requisicaoHTTP("GET",url,true);
	}
}

function trataDados(){
	var info1 = ajax.responseText;  // obtém a resposta como string
	var resposta1 = document.getElementById("nome");
	resposta1.value = info1;
}



//////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////BUSCA DOCUMENTO////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////
function traduz(cpf){
	if(cpf) {
		var url="documento.php?documento="+encodeURIComponent(cpf);
		requisicaoHTTP("GET",url,true);
	}
}

function trataDados(){
	var info2 = ajax.responseText;  // obtém a resposta como string
	var resposta2 = document.getElementById("documento");
	resposta2.value = info2;
}



//////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////BUSCA VALIDADE////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////

function traduz(cpf){
	if(cpf) {
		var url="validade.php?validade="+encodeURIComponent(cpf);
		requisicaoHTTP("GET",url,true);
	}
}

function trataDados(){
	var info3 = ajax.responseText;  // obtém a resposta como string
	var resposta3 = document.getElementById("validade");
	resposta3.value = info3;
}

Assim ele chama cada página trazendo as informações, a consulta é realizada porém apenas o ultimo campo do formulário é preenchido que no caso é validade.

Se eu comentar o ultimo campo ele carrega no campo Documento os dados.

a consulta das páginas é realizada de uma froma simples apenas para conseguir trazer as informações segue exemplo:

<?php
$gmtDate = gmdate("D, d M Y H:i:s"); 
header("Expires: {$gmtDate} GMT"); 
header("Last-Modified: {$gmtDate} GMT"); 
header("Cache-Control: no-cache, must-revalidate"); 
header("Pragma: no-cache");
header("Content-Type: text/html; charset=ISO-8859-1");

// array de palavras
$palavras = array (
	"55346595309" => "NOME DO MOTORISTA"
);

$cpf = $_GET["cpf"];
if(isset($palavras[$cpf]))
	echo $palavras[$cpf];
else
	echo "NÃO ENCONTRADA";
?>

Saberia me dizer em que parte estou errando?

Share this post


Link to post
Share on other sites

Faz assim

fiz de cabeça, então pode não funcionar.

voce vai precisar alterar o seu nome.php pra retorna no formado JSON

e ao invés de $_get usa $_post no nome.php

$("#cpf").change(function() { //vai executar todas vez que o campo cpf sobre mudança	
var campoCpf = document.getElementById("cpf").value;	//pega o valor do campo cpf
			    $.ajax({	
		                type: "POST",
			        url : "nome.php",			    
			        dataType : "json",	
		                data: {cpf: campoCpf}, //envia pro php o cpf via post 
			        success : function(data){			       
			           
			           //vai preencher os campos com o resultado do php
			            $("#nome").value(data[0].nome);
                                   $("#nome").value(data[0].validade);
                                    $("#nome").value(data[0].documento);
			        }
			    });

Share this post


Link to post
Share on other sites

Faz assim

fiz de cabeça, então pode não funcionar.

voce vai precisar alterar o seu nome.php pra retorna no formado JSON

e ao invés de $_get usa $_post no nome.php

$("#cpf").change(function() { //vai executar todas vez que o campo cpf sobre mudança	
var campoCpf = document.getElementById("cpf").value;	//pega o valor do campo cpf
			    $.ajax({	
		                type: "POST",
			        url : "nome.php",			    
			        dataType : "json",	
		                data: {cpf: campoCpf}, //envia pro php o cpf via post 
			        success : function(data){			       
			           
			           //vai preencher os campos com o resultado do php
			            $("#nome").value(data[0].nome);
                                   $("#nome").value(data[0].validade);
                                    $("#nome").value(data[0].documento);
			        }
			    });

Mano agradeço a parceria, consegui resolver a bagaça com sua dica. Segue como ficou:

<script type="text/javascript">
 $(document).ready(function(){
    $("input[name='cpf']").blur(function(){
      var $nome = $("input[name='nome']");
      var $documento = $("input[name='documento']");
      var $validade = $("input[name='validade']");

       $nome.val('Carregando...');
       $documento.val('Carregando...');
       $validade.val('Carregando...');

        $.getJSON(
          'function.php',
          { cpf: $( this ).val() },
          function( json )
          {
            $nome.val( json.nome );
            $documento.val( json.documento );
            $validade.val( json.validade );
          }
        );
    });
  });
  </script>

Function.php

<?php

  function retorna( $cpf, $db )
  {
    $sql = "SELECT NAME nome, DOCUMENTO documento, date_format(DATE_VALIDADE,'%d/%m/%Y') validade
      FROM motorista WHERE `DOCUMENTO` = '$cpf' ";

    $query = $db->query( $sql );

    $arr = Array();
    if( $query->num_rows )
    {
      while( $dados = $query->fetch_object() )
      {
        $arr['nome'] = $dados->nome;
        $arr['documento'] = $dados->documento;
        $arr['validade'] = $dados->validade;
      }
    }
    else
      $arr['nome'] = 'não encontrado';

    return json_encode( $arr );
  }

/* que devolve os dados */
if( isset($_GET['cpf']) )
{
  $db = new mysqlI('localhost', 'root', 'senha', 'banco');
  echo retorna( filter ( $_GET['cpf'] ), $db );
}

function filter( $var ){
  return $var;
}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By djwagnersp
      Bom dia amigos, tudo bem? estou com uma duvida se alguém puder me ajudar agradeço desde já.
       
      tenha a seguinte condição:
      //array dos produtos $prod = 'agua'; $prod = 'refri'; $prod = 'cerveja'; //array das quantidades $qtd = '3'; $qtd = '2'; $qtd = '6'; Gostaria de fazer um loop o for ou foreach que imprimisse o $prod a quantidade de vezes do $qtd
      como seria possível realizar isso?
    • By dutopfave
      Galera tenho um cadastro de cliente que preenche nome e login, ai quando digita o nome, automaticamente ele preenche o login, pra agiliza, ta assim: $("#inputdonome").blur(function(){ $("#login").val($(this).val()); }); só que to com problema de nome repetido, então vou muda ao invés de preenche automático com nome, preenche com EMAIL, porém tem como preenche automático o login só q para antes de chega no '@'   ai ficaria assim:

      E-mail: contato2019@site.com.br
      Login: contato2019
    • By JenneferBarbosa
      <label>Data Inicio</label> <input type="date" name="data_inicio-incluir" id="data_inicio-incluir"> <label>Data Fim</label> <input type="date" name="data_fim-incluir" id="data_fim-incluir"> Boa tarde pessoal, estou iniciando em JS e não sei como fazer a validação de datas. Estou fazendo um sistema de aluguel de livros, então,  como consigo verificar se a data_fim não é menor que a data inicio e que a data_fim seja de 1 até 7 dias depois da data_inicio, não podendo ultrapassar. Se alguém tiver como me ajudar, ficarei muito grata.  
    • By WitchMad
      Ooi gente!
      Seguinte, estou desenvolvendo uma plataforma para advogados. Nela será consultado processos a partir do web service do PJE.
      No site do PJE me recomendou utilizar o NuSoap para consultar o web service e foi o que eu fiz.
      Segue o código da consulta
      <?php require_once 'nusoap/lib/nusoap.php'; /* Parâmetros Requisitados */ // idConsultante // senhaConsultante // numeroProcesso /* Objetos de Resposta sucesso bollean Indica se houve sucesso na consulta do processo. mensagem string Mensagem informando que o processo foi consultado com sucesso. recibo xs:base64Binary Comprovante do protocolo do processo, que contém os dados básicos do processo. */ $wsdl = "https://www.tjpe.jus.br/pje/intercomunicacao?wsdl"; $client = new nusoap_client($wsdl, 'wsdl'); if($client->getError()){ echo "Erro no construtor" . $client->getError(); exit(); } $result = $client->call('consultarProcesso', array('idConsultante'=>'CPF do Consultante', 'senhaConsultante'=>'Senha do Consultante', 'numeroProcesso'=>'Número do Processo')); echo $result['sucesso']; ?> Acontece que a página fica em branco, sem nenhum tipo de mensagem.
      Se possível gostaria de dicas se há algum erro no código, ou alguma outra ferramenta para consultar web service
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.