JQuery: Trabalhando com JSON

Neste post compartilho um exemplo simples de como trabalhar com JSON.

JSON segundo Wikipédia: um acrônimo para “JavaScript Object Notation”, é um formato leve para intercâmbio de dados computacionais. JSON é um subconjunto da notação de objeto de JavaScript, mas seu uso não requer JavaScript exclusivamente. O media-type oficial do JSON é application/json e a extensão é .json.

Exemplo de um objeto JSON:

{ "Alunos" : [ 
        { "nome": "João", "notas": [ 8, 9, 7 ]  },
        { "nome": "Maria", "notas": [ 8, 10, 7 ] },
        { "nome": "Pedro", "notas": [ 10, 10, 9 ] } 
    ]
}

Quer saber mais sobre JSON, clique aqui.

conexao.php

<?php
    $bd_host    = 'nome_do_servidor';
    $bd_user    = 'nome_do_usuario';
    $bd_senha   = 'senha';
    $bd         = 'banco_de_dados';
    $conecta = mysql_connect($bd_host, $bd_user, $bd_senha) or die("Nao Achei o Banco de dados!");
    $bd = mysql_select_db($bd, $conecta) or die("Nao Achei a base de dados!");
?>

index.php

<? require "function.php"; ?>
<html>
<head>
    <meta charset="utf-8">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
 
    <script type="text/javascript">
        $(document).ready(function(){
            $("select[name='nome']").change(function(){
                var endereco = $("input[name='endereco']");
                var telefone = $("input[name='telefone']");
                // limpa os campos
                endereco.val('');
                telefone.val('');
 
                $.getJSON(
                    'function.php',
                    { id: $( this ).val(), acao : "buscarDados" },
                    function( json )
                    {
                        endereco.val( json.endereco);
                        telefone.val( json.telefone);
                    }
                );
            });
        });
    </script>
</head>
<body>
<form action="" method="post">
    <fieldset style="background-color: #E9ECF5; color:#FFF; font-size: 18px; width:450px; line-height:1.8;">
        <label>Nome: <select name="nome">
                <option value="">-Selecione-</option>
                <?php
                echo montaSelect();
                ?>
            </select></label>
        <label>Endereço: </label> <input type="text" name="endereco" value=""> <br>
        <label>Telefone: </label> <input type="text" name="telefone" value=""> <br>
    </fieldset>
</form>
</body>
</html>

function.php

<?php
require_once "conexao.php";
 
function montaSelect() {
    $query = "SELECT * FROM TABELA";
    $r = mysql_query($query) or die(mysql_error());
 
    $opt = "";
    while ($dados = mysql_fetch_assoc($r)){
        $opt .= '<option value="'.$dados['id'].'">  '.$dados['nome'].'</option>';
    }
    return $opt;
}
 
$acao = isset($_GET['acao']) ? $_GET['acao'] : '';
if( $acao == 'buscarDados' ) { 
    header("Content-type: application/json");
 
    $id = $_GET['id'];
 
    $query = mysql_query("SELECT * FROM TABELA WHERE id = '$id'") or die("erro na consulta");
    if( mysql_num_rows( $query ) > 0 )   {
        while( $dados = mysql_fetch_array( $query ) ){
            $arr['endereco'] = $dados['endereco'];
            $arr['telefone'] = $dados['telefone'];
        }
    }
    else {
        $arr['endereco'] = "";
        $arr['telefone'] = "";
    }
 
    echo json_encode( $arr );
}
?>

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *