Array
(
)

AJAX Autopreenchimeto input com mysql

PHP
Fabiano
   - 04 mai 2016

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.
#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
#Código<?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
}

William (devwilliam)
   - 04 mai 2016

Qual a mensagem e erro no console do navegador?

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

0
|
0

Fabiano
   - 04 mai 2016

Pior que não retorna erro

#Código
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.

0
|
0

Fabiano
   - 04 mai 2016

hum acabou de dar

#CódigoTypeError: json is null

$uf.val( json.uf_pn );

0
|
0

Fabiano
   - 04 mai 2016

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

0
|
0

William (devwilliam)
   - 04 mai 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.

0
|
0

Fabiano
   - 04 mai 2016

#Código function( json )
{
$uf_pn.val ( json.uf_pn );
$city_pn.val ( json.city_pn );
});


A linha 92 #Código function( json )

0
|
0

Fabiano
   - 04 mai 2016

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

#Código
<?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
}

?>

0
|
0

Fabiano
   - 26 mai 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.

0
|
0

William (devwilliam)
   - 26 mai 2016

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

0
|
0