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: , , , , ,
Designed by NattyWP Wordpress Themes.
Images by desEXign.