Dúvida em Ajax, xml e DOM

0 respostas
marthian_2

Bom dia pessoal,

tenho q implementar uma agenda de contato bem simples, mas não estou conseguindo.

segue os codigos abaixo:

ajax.js

function getXMLHttpRequest() {

/* Internet Explorer <em>/

if (window.ActiveXObject) {

var versoes = [“Microsoft.XMLHttp”, “MSXML2.XMLHttp”,

“MSXML2.XMLHttp.3.0”, “MSXML2.XMLHttp.4.0”,

“MSXML2.XMLHttp.5.0”, “MSXML2.XMLHttp.6.0”];

for (i=0; i<versoes.length; i++) {

try {

var xmlHttp = new ActiveXObject(versoes[i]);

return xmlHttp;

} catch (ex) {}

}

}

/</em> Mozilla, Opera, Firefox e outros */

else if (window.XMLHttpRequest) {

return new XMLHttpRequest();

}

else {

return null;

}

}
function buscar() {

var filtro = document.getElementById(filtroContato).value;

var ajax = getXMLHttpRequest();

if (ajax!=null) {
/* ************************************************************* */
    /* Tratar o evento no botão buscar                               */
    /* ************************************************************* */
    ajax.onreadystatechange = function() {
        if (ajax.readyState == 4) {
            if (ajax.status == 200) {

                alert(ajax.responseXML.getElementsByTagName("resposta")[0].getAttribute("status"));
                /* ************************************ */
                /* TRATAMENTO DO EVENTO NO BOTÃO BUSCAR */
                /* ************************************ */

            }
        }
    }

    ajax.open("GET", "BuscaContatoServlet?nome="+escape(filtro), true);
    ajax.send(null);
}
else {
    alert("Seu navegador não suporta AJaX!");
}

}

function incluir() {

var nomeContato = document.getElementById(filtroContato).value;

var ajax = getXMLHttpRequest();

if (ajax!=null) {
/* ************************************************************* */
    /* Tratar o evento no botão incluir                              */
    /* ************************************************************* */
    ajax.onreadystatechange = function() {
        if (ajax.readyState == 4) {
            if (ajax.status == 200) {

                alert(ajax.responseXML.getElementsByTagName("resposta")[0].getAttribute("status"));
                /* ************************************* */
                /* TRATAMENTO DO EVENTO NO BOTÃO INCLUIR */
                /* ************************************* */

            }
        }
    }

    ajax.open("POST", "AdicionaContatoServlet", true);
    ajax.setRequestHeader("content-type","application/x-www-form-urlencoded");
    ajax.send("nome="+escape(nomeContato));
}
else {
    alert("Seu navegador não suporta AJaX!");
}

}

function atualizar() {

var nomeContato = document.getElementById(nomeContato).value;

var emailContato = document.getElementById(emailContato).value;

var telefoneContato = document.getElementById(telefoneContato).value;

var ajax = getXMLHttpRequest();

if (ajax!=null) {
/* ************************************************************* */
    /* Tratar o evento no botão atualizar                            */
    /* ************************************************************* */
    ajax.onreadystatechange = function() {
        if (ajax.readyState == 4) {
            if (ajax.status == 200) {

                alert(ajax.responseXML.getElementsByTagName("resposta")[0].getAttribute("status"));
                /* *************************************** */
                /* TRATAMENTO DO EVENTO NO BOTÃO ATUALIZAR */
                /* *************************************** */

            }
        }
    }

    ajax.open("POST", "AtualizaContatoServlet", true);
    ajax.setRequestHeader("content-type","application/x-www-form-urlencoded");
    ajax.send("nome="+escape(nomeContato)+"&email="+escape(emailContato)+"&telefone="+escape(telefoneContato));
}
else {
    alert("Seu navegador não suporta AJaX!");
}

}

? Ao clicar no botão inserir, um servlet chamado AdicionaContatoServlet é invocado pelo motor AJaX, passando como parâmetro o nome fornecido no campo ?filtroContato?. No caso de sucesso, o servlet é pra retornar um documento XML conforme a seguir:

Fulano desconhecido desconhecido

? Onde ?Fulano? foi o valor informado pelo usuário. No cadastro de novos contatos, por padrão, seu e-mail e telefone são desconhecidos.
? No caso de falha, o servlet é pra retornar o seguinte documento XML:

? Tratamento para o Sucesso: Adicionar o nome do contato na lista de contatos do div ?resumoLista?.
? Tratamento para a Falha: Exibir uma mensagem de erro como um alerta para o usuário.

web.xml

<?xml version="1.0" encoding="UTF-8"?> ProjetoFWebSessionListener AdicionaContatoServlet AdicionaContatoServlet AtualizaContatoServlet AtualizaContatoServlet LeContatoServlet LeContatoServlet BuscaContatoServlet BuscaContatoServlet AdicionaContatoServlet /AdicionaContatoServlet AtualizaContatoServlet /AtualizaContatoServlet LeContatoServlet /LeContatoServlet BuscaContatoServlet /BuscaContatoServlet 120 index.html
Criado 26 de junho de 2008
Respostas 0
Participantes 1