AJAX Autopreenchimeto input com mysql
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.
pagina function2.php
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
Curtidas 0
Respostas
William
04/05/2016
Qual a mensagem e erro no console do navegador?
Quando trabalhamos com requisições AJAX a melhor maneira de encontrar erros é pelo console!
Quando trabalhamos com requisições AJAX a melhor maneira de encontrar erros é pelo console!
GOSTEI 0
Fabiano
04/05/2016
Pior que não retorna erro
Fica travado no retornando para os campos estado e cidade.
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.
GOSTEI 0
Fabiano
04/05/2016
hum acabou de dar
TypeError: json is null $uf.val( json.uf_pn );
GOSTEI 0
William
04/05/2016
GOSTEI 0
Fabiano
04/05/2016
TypeError: json is null http://localhost/script/agendar_transportadora.php?id=254 Line 92
GOSTEI 0
William
04/05/2016
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.
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.
GOSTEI 0
Fabiano
04/05/2016
function( json )
{
$uf_pn.val ( json.uf_pn );
$city_pn.val ( json.city_pn );
});A linha 92
function( json )
GOSTEI 0
Fabiano
04/05/2016
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
}
?>
GOSTEI 0
Fabiano
04/05/2016
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.
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.
GOSTEI 0
William
04/05/2016
Obrigado pelo retorno Fabiano, estou finalizando o tópico!
GOSTEI 0