completando input com dados de um banco mysql com jquery

88 views
Skip to first unread message

Fabiano Miranda

unread,
May 13, 2016, 3:24:59 PM5/13/16
to jQuery (Brasil)
Boa tarde,

estou com problema quando acrescento mais consultas ao meu script, funciona se eu deixar apenas pesquisando por cod_pn e doc_pn, quando acrescentei mais ficou tudo carregando...

Eu fiz assim

<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='ufCliente']");
     
var $city_pn    = $("input[name='cidCliente']");
   
   

   
      $cod_pn
.val    ('Carregando...');
      $doc_pn
.val    ('Carregando...');
      $uf_pn
.val    ('Carregando...');
      $city_pn
.val    ('Carregando...');
     
        $
.getJSON(
         
"function.php",
         
{ cliente: $( this ).val() },
         
function( json )
         
{
            $cod_pn
.val( json.cod_pn );
            $doc_pn
.val( json.doc_pn );
       
         
}
       
);
   
});
 
});
</script>

<?php
 
/**
   * função que devolve em formato JSON os dados do cliente
   */

 
function retorna( $nome, $db )
 
{
    $sql
= "SELECT * FROM `coh_client_completos` WHERE `name_pn` = '{$nome}' ";

    $arr
= Array();
   
   
if( $result = mysqli_query($db, $sql) )
   
{
     
while( $dados = mysqli_fetch_object($result) )
     
{
        $arr
[ 'cod_pn' ]  = $dados->cod_pn;
        $arr
['doc_pn'] = $dados->doc_pn;  
        $arr
['uf_pn'] = $dados->uf_pn;
        $arr
['city_pn'] = $dados->city_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
}
?>

Obrigado pela ajuda.

Ricardo Sérgio Rosa

unread,
May 14, 2016, 6:09:40 AM5/14/16
to jQuery (Brasil)
Bom dia,

Você apenas esqueceu de colocar o valor do retorno dos campo.

$uf_pn.val (json.uf_pn);
$city_pn.val (json.city_pn);

Fabiano Miranda

unread,
May 20, 2016, 4:54:03 PM5/20/16
to jQuery (Brasil)

Desculpe o exemplo que eu coloquei nao tinha o campo preenchido corretamente, porem está assim

<!-- 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='uf_pn']");
     
var $city_pn =  $("input[name='city_pn']");


     
      $cod_pn
.val      ('Carregando...');
      $doc_pn
.val        ('Carregando...');
      $uf_pn
.val       ('Carregando...');
      $city_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 );
            $city_pn
.val( json.city_pn );
         
}
       
);
   
});
 
});
</script>
<!-- Fim Nova Pesquisa 1 -->

Fica tudo carregando, basta eu tirar os dois ultimos tanto na pagina function.php quando no head que funciona, quando acrescente mais dois campos fica tudo carregando. Teria algo com o json nao carregar mais de 2 consultas ao mesmo tempo?

Fabiano Miranda

unread,
May 20, 2016, 4:55:24 PM5/20/16
to jQuery (Brasil)
pagina function.php está assim:


<?php
 
/**
   * função que devolve em formato JSON os dados do cliente
   */

 
function retorna( $nome, $db )
 
{
    $sql
= "SELECT * FROM `coh_client_completos` WHERE `name_pn` = '{$nome}' ";

    $arr
= Array();


    $result
= mysqli_query($db, $sql);
   
   
if( $result == true)

   
{
     
while( $dados = mysqli_fetch_object($result) )
     
{
        $arr
[ 'cod_pn' ]  = $dados->cod_pn;
        $arr
['doc_pn']    = $dados->doc_pn;
        $arr
['uf_pn']     = $dados->uf_pn;
        $arr
['city_pn']   = $dados->city_pn;
     
}
   
}
   
else{

      $arr
['name_pn'] = 'Erro!!';

   
}
     
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
( $_GET['cliente'], $db );
}

?>


Fabiano Miranda

unread,
May 23, 2016, 7:25:40 AM5/23/16
to jQuery (Brasil)
Bom dia,

Postei este problema em vários fóruns, será que não existe solução para este script?

Tiago Agostinho

unread,
May 23, 2016, 8:39:33 AM5/23/16
to jque...@googlegroups.com
Bom dia Fabiano.

Simulei o seu código aqui e funcionou sem problemas.

Teria como testar seu código online?

Tiago

--
--
Grupo de jQuery Brasil.
 
REGRAS: https://docs.google.com/document/d/1VfvTDmeHTSj-L5ouZJjQQ4OkjTCU1Hr2XtPYBNGVHH4/edit
 
USE O JSBIN.COM / JSFIDDLE.NET PARA CÓDIGOS.
 
Email: jque...@googlegroups.com
Biba: jquery-br+...@googlegroups.com
Site: http://groups.google.com/group/jquery-br?hl=pt-BR

---
Você recebeu essa mensagem porque está inscrito no grupo "jQuery (Brasil)" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jquery-br+...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Fabiano Miranda

unread,
May 23, 2016, 9:58:28 PM5/23/16
to jQuery (Brasil)
Boa Noite tiago, desculpa, mas poderia postar o codigo que testou..


Em sexta-feira, 13 de maio de 2016 16:24:59 UTC-3, Fabiano Miranda escreveu:

Tiago Agostinho

unread,
May 24, 2016, 8:23:34 AM5/24/16
to jque...@googlegroups.com
Fabiano,

eu montei exatamente o seu código e testei... segue abaixo

index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</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='uf_pn']");
var $city_pn = $("input[name='city_pn']");

$cod_pn.val('Carregando...');
$doc_pn.val('Carregando...');
$uf_pn.val('Carregando...');
$city_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 );
$city_pn.val( json.city_pn );
}
);
});
});
</script>
    <!-- Fim Nova Pesquisa 1 -->

</head>
<body>
<input type="text" name="cliente" placeholder="" value="Pedr">
<br>
<input type="text" name="cod_pn" placeholder="">
<br>
<input type="text" name="doc_cliente" placeholder="">
<br>
<input type="text" name="uf_pn" placeholder="">
<br>
<input type="text" name="city_pn" placeholder="">
<br>
</body>
</html>
function.php
<?php
/**
* função que devolve em formato JSON os dados do cliente
*/
function retorna( $nome, $db )
{
$sql = "SELECT * FROM `coh_client_completos` WHERE `name_pn` = '{$nome}' ";

$arr = Array();

    $result = mysqli_query($db, $sql);

if( $result == true)
{
        while( $dados = mysqli_fetch_object($result) )
{
$arr[ 'cod_pn' ] = $dados->cod_pn;
$arr['doc_pn'] = $dados->doc_pn;
$arr['uf_pn'] = $dados->uf_pn;
$arr['city_pn'] = $dados->city_pn;
}
}
else{
        $arr['name_pn'] = 'Erro!!';
    }
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( $_GET['cliente'], $db );
}
?>

Banco de dados: coh_fin
CREATE TABLE IF NOT EXISTS `coh_client_completos` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name_pn` varchar(255) NOT NULL,
  `cod_pn` int(11) NOT NULL,
  `doc_pn` varchar(30) NOT NULL,
  `uf_pn` varchar(2) NOT NULL,
  `city_pn` varchar(30) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Extraindo dados da tabela `coh_client_completos`
--

INSERT INTO `coh_client_completos` (`id`, `name_pn`, `cod_pn`, `doc_pn`, `uf_pn`, `city_pn`) VALUES
(1, 'Pedro', 100, '124563', 'SP', 'São Paulo');

--

Fabiano Miranda

unread,
May 24, 2016, 8:53:38 AM5/24/16
to jQuery (Brasil)
Bom dia,

Entendo, a única coisa diferente no seu código do meu é uma função para formatar o campo cpf e cnpj onde coloca a separação da forma adequada tanto para um quanto para outro.

onkeypress='mascaraMutuario(this,cpfCnpj)'

Vou testar meu html aqui sem está função para ver se dá ok, assim que conseguir retorno para dizer se deu certo, obrigado pela ajuda.



Em sexta-feira, 13 de maio de 2016 16:24:59 UTC-3, Fabiano Miranda escreveu:

Fabiano Miranda

unread,
May 25, 2016, 10:13:32 AM5/25/16
to jQuery (Brasil)

Consegui um erro para demostrar.

 Notice: Undefined property: stdClass::$uf_pn in

a linha 18 do meu codigo é
Reply all
Reply to author
Forward
0 new messages