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 lezão
      Boa noite!
      Estou tentando fazer um codigo de horario de atendimento, e naun estou tendo resultados.
      Alguem pode me ajudar :
      <?php if ($hoje = 3 & $hoje < 5 & $hora >= 0 & $hora < 08){ echo "<font face='verdana', arial' size=2 color='red'>Fechado</font>";} else if ($hoje > 3 & $hoje < 5 & $hora >= 08 & $hora < 18){ echo "<font face='verdana', arial' size=2 color='red'>Fechado</font>";} else if ($hoje = 3 & $hora >= 18 & $hora < 23){ echo "<font face='verdana', arial' size=2 color='green'>Aberto</font>";} ?>  
    • By AndersonWS
      Meu site está caindo muito nos últimos dias. Basicamente acessa e não aparece nada, uma tela em branco. O pessoal da hospedagem falou que tenho que otimizar o banco de dados e que o problema é esse. Acho estranho pois o mesmo site não caia e agora "do nada" tem esse problema. Fiz um teste de tracert no cmd para ver as rotas e deu a mensagem: Esgotado o tempo limite do pedido. Isso me parece o problema e não o banco de dados.
      Otimização do banco tem alguma coisa a ver com essa mensagem?
      Poderia o site por não estar muito otimizado simplesmente não mostrar nada na tela? Não deveria carregar ao menos o html?
      Se não for o local certo da pergunta me perdoem mas como falaram que o problema era o banco de dados postei aqui.
      Grato.
    • By manolegal
      Olá amigos(as) do Fórum.
      Tenho um número inteiro no PHP e preciso inseri-lo no Postgresql com 02 casas decimais.
      Defini o campo no Postgresql do tipo numeric(14,2)
      O valor está assim no PHP:
      2961966 Preciso gravar no BD da seguinte maneira:
      29619.66 Porém está gravando da seguinte forma:
      2961966.00 Tentei utilizando number_format, porém não consegui:
      $numero_bd = number_format($numero, '.', ''); $numero_bd = number_format($numero,2,"."); $numero_bd = number_format($numero,2,","numerovalor_ref_15,2,",","."); Caso alguém possa me ajudar, desde já agradeço.
    • By Felper
      Criei um sistema de login com php e mysql mas não consigo realizar o login mesmo tendo certeza de que os dados foram cadastrados com sucesso. Não sei o que fiz de errado. Vejam o código:
      <?php $login2 = $_POST['loginlogar']; $senha2 = $_POST['senhalogar']; $link = mysqli_connect("localhost", "root", "", "bancolanche") or die("<h1>Não foi possível conectar!!</h1>". mysqli_error()); $banco = mysqli_select_db($link, "bancolanche") or die("<h1>Não foi possível abrir banco de dados!!</h1>". mysqli_error()); $sql = "SELECT login, senha FROM users"; $resulta = mysqli_query($link, $sql); while ($book = $resulta->fetch_object()) { $logindb = $book->login; $senhadb = $book->senha; } if($login2 == "" || $senha2 == ""){ $_SESSION['msg'] = "<h1 style='color:red'>Erro ao logar! Há campos de preenchimento obrigatório em branco.</h1>"; header("Location: logar.php"); } else { if($logindb==$login2 && $senhadb==$senha2){ $_SESSION['msg'] = "<h1 style='color:green'>Logoff realizado com sucesso!</h1>"; header("Location: index.html"); } else { $_SESSION['msg'] = "<h1 style='color:red'>Erro ao logar! Usuário inexistente ou senha incorreta.</h1>"; header("Location: logar.php"); } } mysqli_close($link); ?>  
×

Important Information

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