Ir para conteúdo
Entre para seguir isso  
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

Compartilhar este post


Link para o post
Compartilhar em outros 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?

Compartilhar este post


Link para o post
Compartilhar em outros 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);
			        }
			    });

Compartilhar este post


Link para o post
Compartilhar em outros 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;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

  • Conteúdo Similar

    • Por matheusmacias
      Bom, estou fazendo um sistema de login com ajax no arquivo acesslg.php tem:
       
      if (strcmp(basename($_SERVER["SCRIPT_NAME"]), basename(__FILE__)) === 0){ header("location: ../error/index.php"); } ^^ bloqueando o acesso direto só que, parece que esse comando ta bloqueando o script de validar o login
      <script type="text/javascript"> $(function(){ $('#logine').submit(function(){ $.ajax({ url: 'include_bella/acesslg.php', type: 'POST', data: $('#logine').serialize(), success: function(data){ $('.validatelg').html(data); } }); return false; }); }); </script>  
    • Por Incompetech
      Olá a todos. Então.. eu estava praticando um pouco de HTML / CSS e no fim cheguei a um resultado bem legal e simples claro disto aqui:
       
      Eu sei que alguns vão reconhecer isto.. Mas para quem não conhece é algo relacionado ao game MU ONLINE.
      Enfim. Como podem ver eu inventei alguns adicionais que no caso são as características dessa armadura, porém eu gostaria de aplicar um efeito em que esses adicionais apareçam quando eu passar o mouse por cima da imagem da armadura.. como se fosse dentro do game.
      Abaixo vão alguns exemplos:
      Efeito aplicado em um projeto HTML: 

      O mesmo efeito In Game:
       
      Sei que pode parecer algo meio trivial mas gostaria muito de aprender como eu faço para criar algo igual, se puderem me ajudar eu agradeço de coração.
    • Por Caio_Lourençon
      Olá estou desenvolvendo um projeto utilizando a extensão MySQLi, e nisso aproveitando para utilizar algumas funções orientada a objeto! Gostaria de tirar umas dúvidas em relação a listagem de dados, são duas perguntas:   1) Utilizar a função foreach() ao invés de um while() com a função fetch_array() dentro, tem uma listagem mais rápida ou mais lenta? Pois com ambas consigo trazer os dados, No momento estou utilizando a foreach por ser mais rápida de se digitar.
      2) Utilizo muitas listagens de tabelas diferentes na mesma página sempre chamando um novo SELECT, seria melhor criar uma função com um SELECT dentro para eu sempre reutiliza-lá ou não iria mudar muita coisa em questão de desempenho?
       
      Agradeço qualquer informação.
    • Por gersonab
      Procuro uma revenda de hospedagem confiável, ja adianto que uolhost e locaweb estão fora dos planos.
×

Informação importante

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