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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar