Da Query (MySQL) para JSon

Outubro 7, 2008 on 6:32 pm | In JavaScript, AJAX, Tutorial | 2 Comments

Bom, como já é comum as pessoas trabalharem com AJAX onde o envio se da para um arquivo que se conecta em um banco de dados e retorna o resultado de um Query, vou ensinar como tratar esse(s) dado(s) para retornar um Json e processar os dados sem o uso de eval(), pois como foi comentado no outro post sobre, o eval é uma função perigosa que pode executar códigos javascript maliciosos, para isso iremos usar um parser (retirado do Json.org).

Vamos ao que interessa, primeiramente vamos ver como tratar os dados de retorno de uma query, no qual precisamos criar uma array que para cada posição teremos uma array com os valores:

PHP:
  1. $query="SELECT * FROM clientes";
  2. $resp=mysql_query($query);
  3. $obj=array();
  4. while($ret=mysql_fetch_assoc($resp)){
  5. $obj[] = $ret;
  6. }
  7. echo json_encode($obj);
  8. /*Imaginemos que o Obj tenha o seguinte conteudo:
  9. Array
  10. (
  11. [0] => Array
  12. (
  13. [id] => 7
  14. [usuario] => usuario
  15. [nome] => Rafael
  16. )
  17. [1] => Array
  18. (
  19. [id] => 8
  20. [usuario] => user
  21. [nome] => Cunha
  22. )
  23. )
  24. */
  25.  
  26. /*O conteúdo do echo será
  27. [{"id":"7", "usuario":"usuario","nome":"Rafael" },
  28. {"id":"8", "usuario":"user","nome":"Cunha"}]
  29. */

Acima então no final usamos a função json_encode do PHP para passarmos nossa array para um valor representante em Json.
Agora nossa função ajax (javascript) ja recebeu os dados e o que precisamos é dar um parse para passarmos para um Obj com notação Json para podermos manipular os dados livremente, para isso precisaremos do parser que está escrito em JavaScript e pode ser feito o download na página do Json.org:

JAVASCRIPT:
  1. // Imaginando que seu Ajax (função) retorne o resultado com o nome de var data
  2. var myObject = JSON.parse(data);
  3. // Pronto: para acessarmos os dados podemos utilizar o
  4. // myObject.id
  5. // myObject.usuario
  6. // myObject.nome
  7.  
  8. // For roda o Objeto JSon e retorna valor
  9. for (var x in myObject){
  10. alert("Meu id:  "+myObject[x].id+" usuario : "+myObject[x].usuario+" nome : "+myObject[x].nome);
  11. }

Poque usar o JSON.parse() ? Na verdade como dito anteriormente é uma questão de segurança, pois este parse não executa códigos, nos livrando de problemas com scripts maliciosos, além de ser mais rápido do que simplesmente executar um eval(), este parse pode ser usado para executar funções em conjunto com a criação do Obj, basta dar uma olhada na documentação.


Ferramentas para desenvolver

Maio 19, 2008 on 6:19 pm | In Informatica, Trabalho, JavaScript, AJAX, SEO | 2 Comments

Bom, existe uma grande discução sobre ferramentas para desenvolver, seja ela web-based ou não, a grande discução fica por conta se realmente a ferramenta ira lhe ajudar a construir o melhor código no melhor tempo possível. Não irei entrar no merito no momento sobre essa discução; estou para dizer que existem ferramentas que não podem faltar na vida do webdeveloper, algumas delas estão descritas abaixo :

  • Para nosso amigo Firefox:
  1. Firebug : Ferramenta para debugar, monitorar e editar em tempo real no site, CSS, HTML e Javascript, ferramenta muito poderosa.
  2. YSlow : Ferramenta que analiza o site e traz estatística se o site esta com performace baixa ou alta, baseada nas regras do Yahoo!.
  3. HttpFox : Ferramenta que monitora e analiza entrada e saída do protocolo HTTP do website, muito importante para visualizar controles em Ajax.
  4. Web Developer tool bar :Â Ja dito ateriormente neste post, ferramenta com multiplas ferramentas para web.
  • Para nosso inimigo amigo IE:
  1. Developer ToolBar : Igual ao firebug, porém com menos recursos.
  2. MultiplesIEs : Ferramenta para poder testar o site em diversas versões do IE.


DHTML, DOM e JavaScript DOM não são a mesma coisa

Maio 5, 2008 on 9:11 am | In Informatica, JavaScript, AJAX | No Comments

Bom vou falar um pouco sobre conceitos, logo para apresentar para vocês uma pouco o que realmente é DHTML ou Dynamic HTML e DOM, o que seria esse DOM que todo mundo fala? O conceito de DHTML é bem antigo, ja se usavam apartir do momento que lançaram o IE 4.0+, Netscape 7+, Mozilla e Firefox 1.0.

É a idéia de tornar a página dinâmica seria a possibilidade de transformar ou mudar estrutura da página sem o reload dela, mudar um título, cabeçalho, cor, esconder algo do usuário ou mostrar num passe de mágica, sem que ele espere pelo reload da página inteira novamente.

Mas o que tem a ver DOM e Javascript com tudo isso ? DOM significa Document Object Model (Modelo de Objetos de Documento) que seria a estrutura HTML. É basicamente uma arvóre de nós.

Exemplo:

HTML:
  1. <div id="xis">
  2. <div id="Y">
  3. <div id="H"></div>
  4. </div>
  5. </div>

No exemplo acima temos dentro da div XIS os seguintes nós XIS>Y>H . Dizendo como é nossa estrutura. A idéia do DHTML é de que com o JavaScript utilizando padronização (CSS, xHTML / HTML) podemos fazer mudanças nesta estrutura em tempo real para facilitar a vida do usuário, seja deixando um texto mais escuro, mudando uma img, abrindo e fechando caixas ou até mesmo com recursos mais avançados como o AJAX.

Abraços e boa semana ; )


JSON Populando formulário

Agosto 28, 2007 on 12:25 am | In Informatica, JavaScript, AJAX, Tutorial | 7 Comments

JSON, o que é ? É um acrônimo para JavaScript Object Notation, serve para que ? Serve para fazer intercâmbio de dados, mais utilizado no Ajax, atualmente utilizado para retorno de dados para o AJAX, com a necessidade de popular (retornar) dados para um formulário.

JSON que se lê djeissón, pode ser utilizado em diversas linguagens, como php, c/c++, javascript, Java, Delphi, Perl, Python, Ruby, ColdFusion e muitas outras.

Imaginamos que ao clicar no botão alterar dados de uma lista, queremos trazer os dados da requisição do HTTP (Ajax) para colocalos no formulario. Para isso devemos retornar um dado do Ajax (arquivo da requisição) em JSON.

Para se encapsular dados para o Json no PHP basta o seguinte:

PHP:
  1. $array = array ('a'=>1,'b' => 2, 'c' => 3);
  2. $res=json_encode($array);
  3. // retornando no res o seguinte:
  4. // {"a":1, "b":2, "c":3 }

Otimo, agora como devemos ler os dados do retorno no JavaScript? Essa é parte mais fácil, para converter dados do texto JSON para objetos (variavel do JS) basta usar a função eval();

JAVASCRIPT:
  1. // resposta é o $res do PHP, retorno dos dados
  2. eval("var arr = "+resposta);
  3. // Agora temos uma array de dados em javascript
  4. // exemplo arr.a = 1
  5. // exemplo arr.b = 2
  6. // exemplo arr.c = 3

Agora basta popular o formulário (inputs, text area e afins) com DOM HTML. Pronto você aprendeu como JSON trabalha, o que é e como utilizar, agora basta utilizar suas ideias em conjunto ao Ajax e construir maravilhas.


JQuery - Ajax métodos

Agosto 26, 2007 on 9:42 pm | In JQuery, AJAX | 1 Comment

Lista de métodos do JQuery para se usar o Ajax, como eu utilizei alguns vou falar sobre os outros, uma breve descrição para utilização, como usar vide o manual:

$.ajax( propriedades )
Abre uma página remota utilizando o requeste de HTTP. Pode ser utilizado com envio de POST, GET e leitura de scripts JS e muito mais.

$.ajaxSetup ( propriedades )
Seta todas propriedades GLOBAL do request do ajax.

$.ajaxTimeout( time )
Seta o tempo no qual ocorrerá a espera antes da execução da requisição do ajax.

$.get( url, parametros, retorno da chamada )
Lê uma página remota enviando os dados via GET, mandando URL, parametros são os dados do GET e possibilidade de fazer controle de error no retorno.

$.getJSON( url, parametros, retorno da chamada )
Lê dados JSON utilizando requisição HTTP.

$.getScript( url, retorno da chamada )
Lê e executa um script JavaScript utilizando requisição HTTP GET.

$.post( ? vide outros topicos ?)

ajaxComplete( retorno )
Função que será executada após o ajax ter completado.

ajaxError( retorno )
Função que será executada caso a requisição falhe.

ajaxSend( retorno )
Função que será executada antes da requisição do ajax ser enviado.

ajaxStop( retorno )
Função que será executada após todas requisições ajax terminarem.

ajaxSucess( retorno )
Função que será executada após todas requisições ajax forem bem sucedidas.

load( url, parametros, retorno )
Lê um arquivo HTML e injeta isto ao DOM.

Então estão ae todas ou pelos menos algumas possibilidades que o JQuery lhe da para trabalhar com AJAX, espero que ajude a organizar um pouco as idéias e melhorar na produção, ganhar um pouco em código, pois pelo que eu vi, em vez de usarem os métodos prontos o pessoal tem usado DOM e as vezes retornado problemas diante do I.E.


Entenda o que é AJAX !

Junho 15, 2007 on 10:05 am | In Informatica, Trabalho, JavaScript, AJAX | 3 Comments

Muito comum eu ver por ai ou me perguntarem se eu tenho função X em AJAX ou como se faz coisa Y em AJAX, sendo que muitas vezes o X e/ou Y estão longe de ser uma sistemática de AJAX, por isso hoje vou escrever esse texto para finalmente tirar todas dúvidas sobre o que é ou não esse tal de AJAX.

AJAX é a abreviação do Asynchronous Javascript And XML assíncrono de JavaScript e XML (não necessário sendo XML), mas esse assincrono por ae o que é? É a idéia de 'liberdade', a base de você fazer uma requisição ao servidor e esperar, porém enquanto você espera você esta livre para fazer outras coisas. Exemplo: Se você requisitar se um usuário é valido ou não você pode enquanto isso, colocar uma img de loading na tela enquanto não vem a 'reposta'. Assim que a resposta chegar você toma as devidas decisões.

Hmmm... esta començando e entender? Então ja de base nós temos em mente que todo AJAX é um requisição ao servidor, sem tempo de resposta, (geralmente é rápido) e na qual podemos fazer ações enquanto não chega a resposta.

E o XML, seria a idéia de que toda resposta da requisição deveria ter, porém nos podemos trazer tranquilamente respostas em outros formatos conteúdo HTML, documento em XML, simplesmente algum 'texto' ou notação de objeto de JavaScript (famoso JSON). Então quando receber essa requisição, trabalhar com esses dados. Todos esses tipos de resposta de requisição referen-se a tecnologia ou método AJAX.

Apartir então da reposta você pode atualizar ou modificar o conteúdo da 'página' com o Modelo de Objeto do Documento (famoso DOM).

Com as imagens acima você ver 'desenhado' como é a idéia de requisição e resposta, com tudo isso você tem a vantagem de ter páginas mais dinamicas afim de melhorar o desempenho em relação ao usuário. Dúvidas? Sugestões? So comentar.


Next Page »

 

 Assine o feed