Usando Prototype para consulta AJAX com JSON

Ajax, Javascript, JQuery, Prototype View Comments Marcelo Korjenioski

Hoje irei dar um exem­plo de como usar JSON com Pro­totype  em uma cha­mada via Ajax. Não estou muito acos­tu­mado com o Pro­totype mas come­cei a usar por ser um espe­ci­fi­ca­ção de um pro­jeto que estou tra­ba­lhando atualmente.

O JSON é um acrô­nimo para “JavaScript Object Nota­tion” e é um padrão para a troca de men­sa­gens. JSON é muito usado em cha­ma­das Ajax por ser mais sim­ples e mais leve que SOAP que usa XML.

Abaixo segue um exem­plo de um objeto JSON que irei usar neste tuto­rial.
Crie um arquivo cha­mado conteudo.htm e insira o código abaixo.

{ "jogos" : [
{ "nome": "World of Warcraft", "preco": "49,90" },
{ "nome": "Diablo 3", "preco": "89,90" },
{ "nome": "StarCraft 2", "preco": "49,90" }
]
}

Agora basta criar um arquivo com o nome index.htm e inse­rir o con­teúdo abaixo.

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.1.0/prototype.js"></script>
</head>
<body>
<input type="button" name="pesquisar" onclick="pesquisar();" value="pesquisar"/>
<script>
function pesquisar () {
var request = new Ajax.Request('conteudo.htm', {
'method' : 'post',
'parameters' : {
'codigo' : '1'
},
'onComplete' : function(response) {
var text = response.responseText.stripTags();
// Transformo o texto em objeto
var objeto = text.evalJSON();
var jogos = objeto.jogos;
var str = "";

jogos.each(function(jogo) {
str += jogo.nome + ' ';
str += jogo.preco + '\n';
});
alert(str);
}
});
}
</script>
</body>
</html>

Agora é neces­sá­rio que os dois arqui­vos este­jam no mesmo dire­tó­rio para que o exem­plo fun­ci­one.
Cli­cando no botão pes­qui­sar será feita uma con­sulta via Ajax para conteudo.htm retor­nando os valo­res do arquivo.

Caso tenha alguma duvida uma outro opi­nião sobre o Post deixe um comen­tá­rio que terei pra­zer em aju­dar.
Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais e Posts aqui apresentados.

Tags: , , , , ,

Padrão de nomenclatura para classes usadas em JavaScript evita problemas

CSS, Javascript, Padrões View Comments Marcelo Korjenioski

Esta semana des­co­bri um pro­blema em se usar nome da clas­ses de estilo para iden­ti­fi­ca­ção em fun­ções javas­cript. A situ­a­ção foi que outro pro­gra­ma­dor ao migrar o layout do sis­tema  apa­gou o nome de  clas­ses que esta­vam sendo usa­das no JS via Pro­totype para vali­da­ção de cam­pos.  Como não exis­tia um padrão para o nome das clas­ses minha solu­ção para evi­tar futu­ros pro­ble­mas foi criar um padrão de nomen­cla­tura “jsNo­me­Da­Classe” assim quando alguem ver o “js” na frente do nome da classe indica uma refe­ren­cia para uma fun­cao JS.
No exem­plo abaixo eu usei o padrão jsNo­me­Do­Bo­tao para que se algum pro­gra­ma­dor ver o nome dessa classe saiba que tem uma fun­ção JS atri­buida e não apa­gue ou altere o nome
da classe em uma manu­ten­ção ou troca de layout do sistema.

<html>
<head>
<title>Validar</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
</head>
<body>
<form>
<input class="jsNomeDoBotao" type="button" name="botao_1" value="botao 1" /><br/>
<input class="jsNomeDoBotao" type="button" name="botao_2" value="botao 2"/><br/>
<input class="jsNomeDoBotao" type="button" name="botao_3" value="botao 3"/><br/>
<input class="jsNomeDoBotao" type="button" name="botao_4" value="botao 4"/><br/>
<input class="jsNomeDoBotao" type="button" name="botao_4" value="botao 5"/>
</form>
<script type="text/javascript">
// Adiciono um alert para todos os inputs com o nome de class jsNomeDoBotao.
$(".jsNomeDoBotao").bind("click", function(event) {
alert(this.name);
});
</script>
</body>
</html>

Caso tenha alguma duvida uma outro opi­nião sobre o Post deixe um comen­tá­rio que terei pra­zer em aju­dar.
Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais e Posts aqui apresentados.

Tags: , ,
Designed by NattyWP Wordpress Themes.
Images by desEXign.