Escolar Documentos
Profissional Documentos
Cultura Documentos
AULA 5
Biblioteca Ajax!
xmlhttprequest.js
var ajax;
var dadosUsuario;
//Cria o objeto e faz a requisição
function requisicaoHTTP(tipo, url, assinc){
if(window.XMLHttpRequest){ //Mozilla, Opera, Safari....
ajax = new XMLHttpRequest();
}
else if(window.ActiveXObject){ //IE
ajax = new ActiveXObject("Msxml2.XMLHTTP");
if(!ajax){
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
}
if(ajax) //iniciou com sucesso!
iniciaRequisicao(tipo,url,assinc);
else
alert("Essa porcaria velha de navegador não suporta XML,
Ajax ou qualquer coisa interessante. Arrume outro!");
}
//Inicia o objeto criado e envia os dados
function iniciaRequisicao(tipo,url,bool){
ajax.onreadystatechange = trataResposta;
ajax.open(tipo,url,bool);
ajax.setRequestHeader("Content-Type", "application/x-www-form-
urlencoded; charset=UTF-8");//pode ser também iso-8859-1
//ajax.averrideMimeType("text/XML"); /*somente para o Mozilla*/
ajax.send(dadosUsuario);
}
//Inicia requisicao com envio de dados
function enviaDados(url){
criaQueryString();
requisicaoHTTP("POST",url,true);
}
//Cria string a ser enviada
function criaQueryString(){
dadosUsuario="";
var frm = document.forms[0];
var numElementos = frm.elements.lenght;
for(var i = 0; i < numElementos; i++){
if(i < numElementos-1){
dadosUsuario +=frm.elements[i].name+"=" +
encodeURIComponent(frm.elements[i].value)+"&";
}
}
}
//Trata a resposta do servidor
function trataResposta(){
if(ajax.readyState == 4){
if(ajax.status == 200){
trataDados(); //cria a função no seu programa
}else{
alert("Oh, Oh...Problemas de comnunicação com o
objeto XMLHttpRequest...");
}
}
18
Prof. Erwin Alexander Uhlmann 2/8/2010
Explicando.
consulta.html
<html>
<head>
<title>Tecnologia Web II - Consulta com Ajax</title>
<script type="text/javascript" src="xmlhttprequest.js"></script>
<script type="text/javascript" src="consulta.js"></script>
</head>
<body>
<h1>Consulta com Ajax</h1>
<form action="javascript:void%200"
onsubmit="obtemPreco(this.codigo.value); return false">
<p>Digite o código do produto:
<input name="codigo" type="text" id="codigo" size="5"
maxlength="5">
<span id="precoProduto"></span></p>
<p><input type="submit" name="Consultar" value="Consultar"
/></p>
</form>
</body>
</html>
consulta.js
function obtemPreco(cod){
if(cod){
var url="consulta.php?cod="+cod;
requisicaoHTTP("GET", url, true);
}
}
function trataDados(){
19
Prof. Erwin Alexander Uhlmann 2/8/2010
consulta.php
<?php
$gmtDate = gmdate("D, d M Y H:i:s");
header("Expires: {$gmtDate} GMT");
header("Last-Modified: {$gmtDate} GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
// array de preços
$produtos = array (
"p1" => "29.90",
"p2" => "35.00",
"p3" => "40.50",
"p4" => "50.90",
"p5" => "120.00"
);
$codigo = $_GET["cod"];
if(isset($produtos[$codigo]))
echo $produtos[$codigo];
else
echo "0.00";
?>
20