Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Frostzym

Jquery

Recommended Posts

Boa Tarde amigos,

 

Tenho o seguinte código,

<script type="text/javascript">
  $(document).ready(function(){
    $("input[name='cliente']").blur(function(){

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

Gostaria de acrescentar mais um campo para completar porem quando eu faço isto fica tudo com status carregando, alguém poderia me ajudar?

 

a pagina function.php segue abaixo.

<?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 a todos que puderem dar uma olhada.

Compartilhar este post


Link para o post
Compartilhar em outros sites
//$arr['uf_pn'] = $dados->uf_pn; 
        //$arr['city_pn'] = $dados->city_pn;

Fiz todas as relações certinho, porem fica tudo carregando apos acrescentar mais consultas, Não apresenta erro no console

Compartilhar este post


Link para o post
Compartilhar em outros sites

acessa via browser:

 

function.php?cliente=123

 

e veja qual erro de PHP aparece. Depois disso corrija.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde, vou no console, não retorna erro aparente, fica com os campos input preenchido com (Carregando...)

William Bruno

 

Esse script foi criado por ti, teria como vc rodar em sua maquina com mais de 2 campos para preenchimento para verificar se ocorre o mesmo erro de ficar carregando?

 

O meu ficou 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='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>

<?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, JSON_FORCE_OBJECT );
  }

/* 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 );
}

?>


<tr>
                  <td><label for="cod_pn">Código</label></td>
                  <td><input name="cod_pn" id="cod_pn" type="text" /></td>
                </tr>
                 <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"  onkeypress='mascaraMutuario(this,cpfCnpj)'  required  /></td>
               </tr>
                <tr>
                  <td><label for="uf_pn">Estado</label></td>
                  <td><input type="text" id="uf_pn" name="uf_pn" size="13" ></td>
                </tr>
                <tr>
                  <td><label for="city_pn">Cidade</label></td>
                  <td><input type="text" id="city_pn" name="city_pn">
                  </td>
                </tr>

Agradeço a ajuda de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Já fiz todo tipo de alteração, tentei fazer um segundo script com todos nomes diferente,mas ele roda um e fica carregando o outro, qualquer informação de ajuda seria util please...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia.

 

Será que não tem como acrescentar mais campos de preenchimento com este script? Coloquei em muitos fóruns e ninguém conseguiu me dizer algo que não tenha sido realizado já, nem o próprio autor do código conseguiu me ajudar, desta forma vou por como resolvido este tópico como não sendo possível ajustar o código. E ao autor que frequenta este fórum se algum dia desses ele lembrar, tentar dar uma opção de correção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você conseguir disponibilizar o projeto online para que possamos acessar (para nós visitarmos o site mesmo, e não o acesso ao servidor), acho que facilita. E com os erros do PHP habilitados:

 

 

// adiciona estas duas linhas uma linha antes de fazer a conexão com o banco ($db = new mysqli...)
ini_set("display_errors", 1);
error_reporting(E_ALL|E_STRICT);

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código funciona e é possível adicionar campos.

 

Debugue melhor que você vai encontrar o seu erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.