Autocompletar input com json
Bom dia,
editei um script para preencher dados de um banco, retorna o codigo e o doc sem problemas na variavel $uf_pn retorna null no console e apresenta este erro.
Segue codigo que estou usando
function.php
teste.php
editei um script para preencher dados de um banco, retorna o codigo e o doc sem problemas na variavel $uf_pn retorna null no console e apresenta este erro.
Notice: Undefined property: stdClass::$uf_pn in C:\wamp64\www\script\function.php on line 18
Segue codigo que estou usando
function.php
<?php
/**
* função que devolve em formato JSON os dados do cliente
*/
function retorna( $nome, $db )
{
$sql = "SELECT `name_pn`, `doc_pn`, `cod_pn` FROM `coh_client_completos` WHERE `name_pn` = '{$nome}' ";
$query = $db->query( $sql );
$arr = Array();
if( (!empty($query->num_rows)) )
{
while( $dados = $query->fetch_object() )
{
$arr[ 'cod_pn' ] = $dados->cod_pn;
$arr[ 'doc_pn' ] = $dados->doc_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['cliente']) )
{
$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
}teste.php
<html lang="en">
<head>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<meta charset="UTF-8">
<title>Teste</title>
<!-- Nova Pesquisa 1 -->
<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']");
var $uf_pn = $("input[name='estado']");
$cod_pn.val('Carregando...');
$doc_pn.val('Carregando...');
$uf_pn.val('Carregando...');
$.getJSON(
'function.php',
{ cliente: $( this ).val() },
function( json )
{
$cod_pn.val( json.cod_pn );
$doc_pn.val( json.doc_pn );
$uf_pn.val( json.uf_pn );
}
);
});
});
</script>
<!-- Fim Nova Pesquisa 1 -->
</head>
<body>
<tr>
<td width="26%"><label for="cliente">Cliente:</label></td>
<td width="74%"><input type="text" id="tags" name="cliente" size="50" /></td>
</tr>
<tr>
<td><label for="doc_cliente">CNPJ/CPF:</label></td>
<td><input type="text" name="doc_cliente" id="doc_cliente" required /></td>
</tr>
<tr>
<td><label for="uf_pn">Estado</label></td>
<td><input type="text" id="estado" name="estado" size="13" ></td>
</tr>
<tr>
<td><label for="city_pn">Cidade</label></td>
<td><input type="text" id="cidade" name="cidade">
</td>
</tr>
</body>
</html>
Fabiano
Curtidas 0
Respostas
Fabiano
25/05/2016
bom dia
consegui um erro para poder analisar melhor o problema
Segue codigo que estou usando
function.php
teste.php
consegui um erro para poder analisar melhor o problema
Notice: Undefined property: stdClass::$uf_pn in C:\wamp64\www\script\function.php on line 18
Segue codigo que estou usando
function.php
<?php
/**
* função que devolve em formato JSON os dados do cliente
*/
function retorna( $nome, $db )
{
$sql = "SELECT `name_pn`, `doc_pn`, `cod_pn` FROM `coh_client_completos` WHERE `name_pn` = '{$nome}' ";
$query = $db->query( $sql );
$arr = Array();
if( (!empty($query->num_rows)) )
{
while( $dados = $query->fetch_object() )
{
$arr[ 'cod_pn' ] = $dados->cod_pn;
$arr[ 'doc_pn' ] = $dados->doc_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['cliente']) )
{
$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
}teste.php
<html lang="en">
<head>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<meta charset="UTF-8">
<title>Teste</title>
<!-- Nova Pesquisa 1 -->
<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']");
var $uf_pn = $("input[name='estado']");
$cod_pn.val('Carregando...');
$doc_pn.val('Carregando...');
$uf_pn.val('Carregando...');
$.getJSON(
'function.php',
{ cliente: $( this ).val() },
function( json )
{
$cod_pn.val( json.cod_pn );
$doc_pn.val( json.doc_pn );
$uf_pn.val( json.uf_pn );
}
);
});
});
</script>
<!-- Fim Nova Pesquisa 1 -->
</head>
<body>
<tr>
<td width="26%"><label for="cliente">Cliente:</label></td>
<td width="74%"><input type="text" id="tags" name="cliente" size="50" /></td>
</tr>
<tr>
<td><label for="doc_cliente">CNPJ/CPF:</label></td>
<td><input type="text" name="doc_cliente" id="doc_cliente" required /></td>
</tr>
<tr>
<td><label for="uf_pn">Estado</label></td>
<td><input type="text" id="estado" name="estado" size="13" ></td>
</tr>
<tr>
<td><label for="city_pn">Cidade</label></td>
<td><input type="text" id="cidade" name="cidade">
</td>
</tr>
</body>
</html>GOSTEI 0
William
25/05/2016
Esse erro é simples, nesse SELECT abaixo vc não está chamando o campo 'uf_pn':
$sql = "SELECT `name_pn`, `doc_pn`, `cod_pn` FROM `coh_client_completos` WHERE `name_pn` = '{$nome}' ";
GOSTEI 0
Fabiano
25/05/2016
Esse erro é simples, nesse SELECT abaixo vc não está chamando o campo 'uf_pn':
$sql = "SELECT `name_pn`, `doc_pn`, `cod_pn` FROM `coh_client_completos` WHERE `name_pn` = '{$nome}' ";
Realmente, logo tinha percebido, porem voltei ao mesmo erro que me segue a um tempo neste script, mesmo assim fica carregando agora, e no console do firebug nao mostra erro algum.
GOSTEI 0
William
25/05/2016
Você tem TeamView?
Se tiver me envie os dados que acesso remoto após as 18:30, meu e-mail wllfl@ig.com.br.
Depois vc posta solução aqui no fórum.
Se tiver me envie os dados que acesso remoto após as 18:30, meu e-mail wllfl@ig.com.br.
Depois vc posta solução aqui no fórum.
GOSTEI 0
Fabiano
25/05/2016
Você tem TeamView?
Se tiver me envie os dados que acesso remoto após as 18:30, meu e-mail wllfl@ig.com.br.
Depois vc posta solução aqui no fórum.
Se tiver me envie os dados que acesso remoto após as 18:30, meu e-mail wllfl@ig.com.br.
Depois vc posta solução aqui no fórum.
Hoje vou em churrasco depois do trabalho mas se vc ficar até mais tarde do pc podemos ver isso, me add no skype se tiver fabiano.bordinoski1 enfim postamos a solução, porque isso ta difícil, perguntei pro proprio autor do código até agora ele nao me respondeu.
GOSTEI 0
Fabiano
25/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