AJAX Autopreenchimeto input com mysql

04/05/2016

0

PHP

Bom dia, gostaria de mais uma vez solicitar ajuda dos vários geek frequentadores deste fórum.


Estou fazendo um formulário e nele gostaria de preencher o nome normalmente e assim que preenchido apos TAB automaticamente preencher os demais campos citados do código.

<!-- Nova Pesquisa -->
<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='cliente']").blur(function(){


      var $cod_pn	= $("input[name='cod_pn']");
      var $doc_pn	= $("input[name='doc_cliente']");

   
      $cod_pn.val('Carregando...');
      $doc_pn.val('Carregando...');
 
        $.getJSON(
          'function.php',
          { cliente: $( this ).val() },
          function( json )
          {
            $cod_pn.val( json.cod_pn );
            $doc_pn.val( json.doc_pn );
          }
        );
    });
  });
</script>
<!-- Fim Nova Pesquisa -->

<!-- Nova Pesquisa 2 -->
<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='cliente']").blur(function(){

    	var $uf		= $("input[name='e']");
    	var $city	= $("input[name='c']");
      	
      	
      	$uf.val 	('Carregando...');
      	$city.val 	('Carregando...');
      	 
        $.getJSON(
          'function2.php',
          { cod_pn: $( this ).val() },
          function( json )
          {
          	$uf.val( json.uf_pn );
          	$city.val( json.city_pn );
          }
        );
    });
  });
</script>
<!-- Fim Nova Pesquisa 2 -->


pagina function2.php

<?php
  /**
   * função que devolve em formato JSON os dados do cliente
   */
  function retorna( $nome, $db )
  {
    $sql = "SELECT `name_pn`, `city_pn`, `uf_pn`, cod_pn FROM `coh_client_completos` WHERE `cod_pn` = '{$nome}' ";

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

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

    return json_encode( $arr );
  }

/* só se for enviado o parâmetro, que devolve os dados */
if( isset($_GET['cod_pn']) )
{
  $db = new mysqli('localhost', 'root', '', 'coh_fin');
  echo retorna( filter ( $_GET['cliente'] ), $db );
}

function filter( $var ){
  return $var;//a implementação desta, fica a cargo do leitor
}
Fabiano

Fabiano

Responder

Posts

04/05/2016

William

Qual a mensagem e erro no console do navegador?

Quando trabalhamos com requisições AJAX a melhor maneira de encontrar erros é pelo console!
Responder

04/05/2016

Fabiano

Pior que não retorna erro

GET http://localhost/script/autocompletar.php?term=fabiano 200 OK 16ms 
jquery-1.10.2.js (linha 8706) 200 OK 15ms	
jquery.min.js (linha 16)
GET http://localhost/script/function2.php?cod_pn=Fabiano+Miranda+dos+Santos+Bordinoski 200 OK	131ms


Fica travado no retornando para os campos estado e cidade.
Responder

04/05/2016

Fabiano

hum acabou de dar

TypeError: json is null
	

$uf.val( json.uf_pn );

	
Responder

04/05/2016

Fabiano

TypeError: json is null http://localhost/script/agendar_transportadora.php?id=254 Line 92
Responder

04/05/2016

William

Verifique seu script PHP, 99,99% dos erros em requisições AJAX estão nos scripts requisitados.

Erros em includes, instruções SQL, falta de ";", consulta retorna vazia e etc.

Na maioria das vezes isso retorna "response" vazio, ou seja, sem o formato esperado que no seu caso é JSON.
Responder

04/05/2016

Fabiano

  function( json )
		          {
		          	$uf_pn.val 		( json.uf_pn );
		          	$city_pn.val 	( json.city_pn );
		          });


A linha 92
 function( json )
Responder

04/05/2016

Fabiano

Estou verificando, o código php, acho que estou cego já, poderia dar uma olhada, caso veja algo seria de muita ajuda.


<?php
  /**
   * função que devolve em formato JSON os dados do cliente
   */
  function retorna2( $nome, $db )
  {
    $sql = "SELECT `uf_pn`,`name_pn`,`city_pn` FROM `coh_client_completos` WHERE `name_pn` = '{$nome}' ";

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

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

    return json_encode( $arr );
  }

/* só se for enviado o parâmetro, que devolve os dados */
if( isset($_GET['name_pn']) )
{
  $db = new mysqli('localhost', 'root', '', 'coh_fin');
  echo retorna2( filter ( $_GET['name_pn'] ), $db );
}

function filter( $var ){
  return $var;//a implementação desta, fica a cargo do leitor
}

?>
Responder

26/05/2016

Fabiano

Bom dia,

Problema solucionado com a ajuda do William (Devwilliam), o erro estava na acentuação, com um utf8_encode() nas variáveis $dados->city_pn e $dados->uf_pn o problema foi resolvido.

Muito Obrigado William você é fera.
Responder

26/05/2016

William

Obrigado pelo retorno Fabiano, estou finalizando o tópico!
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar