segunda-feira, 26 de julho de 2010

Categoria E Subcategoria Com PHP E Ajax

Não sei se você lembra, mas há um tempo atrás, tinhamos uma dificuldade enorme ao elaborar um web site; Digo isso, pois trabalhei cuidando de um grande Portal onde eu tinha de alterar e incluir diversas páginas HTML diáriamente!
O negócio hoje mudou, temos diversas linguagens dinâmicas que facilitam nossas vidas e distribuem recursos que fazem programadores iniciantes ou experientes desenvolverem suas atividades com uma facilidade infinitamente maior.
O assunto que abordaremos hoje, refere-se a um evento muito prático que hoje se torna necessário em qualquer Projeto de Médio ou Grande Porte: O “PHP com uso do Ajax”.

Falando Da Solução

Tratando-se de PHP x Ajax, podemos elaborar qualquer coisa!
Para quem tem a necessidade de trazer em tela diversas informações relacionadas a Categorias e subcategorias, Empresas e suas Filiais, Estado / Província e Cidades, essa solução é essencial.
Se você procura algo simples e prático de manusear e customizar, este ficheiro é para você!
Até para facilitar sua vida, vamos usar nesta solução 4 pequenos arquivos, que são:
  • conexao.php (responsável pela conexão à base de dados)
  • index.php (página inicial do Projeto – que deverá chamar os demais ficheiros)
  • cidades.ajax.php (responsável por carregar as cidades)
  • jsapi.js (cria o evento ajax, que carrega a subcategoria)

O Arquivo conexão.php

O arquivo de conexão é muito simples de ser alterado e possui as funções adequadas para que sua conexão ao MySQL seja efetuada com sucesso (conforme script a seguir).





$database = "SERVIDOR"; // Nome ou IP do Servidor

$dbname   = "DATABASE"; // Base de Dados

$usuario  = "USUARIO"; // Usuário do MySQL

$dbsenha  = "SENHA"; // Senha do Usuário MySQL



$conexao= mysql_connect ($database, $usuario, $dbsenha);



if($conexao){



      if (mysql_select_db($dbname, $conexao)){ print ""; }

      else { print "Não foi possível selecionar o Banco de Dados"; }

}

else{ print "Erro ao conectar o MySQL"; }



?>

O Arquivo index.php

Esta página é direta (assim como o script em si) e poderá ser alterada de acordo com suas necessidades.
Até para facilitar seu entendimento, estaremos postando por partes e você poderá conferir na prática seu uso ao finalizar a matéria, pois postamos todo o ficheiro em anexo.
Trazendo os Estados:
No trecho abaixo, usamos um select prático onde trouxemos as siglas de cada Estado através do While.


    
Trazendo a Cidades:
No trecho abaixo trazemos as cidades (de acordo com a variável selecionada acima).
Como a base de dados que utilizei é extensa, até para não haver problema de insatisfação por parte de quem busca a informação, utilizamos um evento que retorna um pedido para que o Internauta aguarde enquanto a busca é efetuada na base de dados (conforme código e imagem a seguir).


    
 
Prático, não?

O Arquivo cidades.ajax.php

Vamos agora verificar o script que trás as subcategorias?
A diferença entre o “index.php” (que também usa o comando while) é que no “cidades.ajax.php” usamos a classe “JSON”. Isto é: Uma classe específica para buscas personalizadas.

  header( 'Cache-Control: no-cache' );
  header( 'Content-type: application/xml; charset="utf-8"', true );

include('conexao.php');
  $cod_estados = mysql_real_escape_string( $_REQUEST['cod_estados'] );

  $cidades = array();

  $sql = "SELECT cod_cidades, nome
      FROM cidades
      WHERE estados_cod_estados=$cod_estados
      ORDER BY nome";
  $res = mysql_query( $sql );
  while ( $row = mysql_fetch_assoc( $res ) ) {
    $cidades[] = array(
      'cod_cidades'  => $row['cod_cidades'],
      'nome'      => $row['nome'],
    );
  }

  echo( json_encode( $cidades ) );
Faça um teste em sua estrutura e crie subcategorias em suas soluções!
Certamente valorizarão e muito seu trabalho.

Dicas De Suporte

Caso você instale o Sistema e apresente algum erro, verifique se você está seguindo o padrão abaixo descrito:
  • Versão do Servidor:
Para evitar problemas ref. a bugs ou erros, utilize o padrão LAMP.
  • Suporte:
Nesta solução utilizamos a classe JSON. Geralmente ela já vem instalada nos Servidores mais modernos!
Se o seu Servidor ainda não tiver dando suporte a esta classe, solicite ao Administrador para configurar o JSON ou baixe a classe diretamente no site e faça a adaptação a seu sistema.
  • Padronização:
Por opção, estamos usando caracteres em “UTF-8″ tanto no script quanto na base de dados. Caso seja de seu interesse, poderá mudar tranquilamente para “ISO-8859-1″ ou outro padrão de caracter de seu interesse.
 

0 comentários:

Enviar um comentário