Requisição Requeest.XML usando o prototype
Ola Grandes amigos,
Estou iniciando no ajax, porem eu estava usando um imenso codigo para trazer dados de um xml, descobri o prototype pode realizar esta tarefa com mais facilidades.
No inicio tive dificuldades para trazer dados como reqest.XML, uma vez no qual eu so conseguia trazer dados responseTEXT, fui pesquisando e acabei conseguindo trazer os dados do xml para serem atualizados em um campo list box.
Estou compartilhando o codigo com voces. Espero que seja util.
<?phpinclude("basicas.php");?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http-equiv="Content-Type" content="text/html; charset=utf-8" /><style></style><script type="text/javascript" language="javascript" src="prototype.js"></script><script type="text/javascript">// ROTINA: Realiza Requisiçãofunction buscaCidades(){var url = 'estados_xml.php';var pars = ''; var myAjax = new Ajax.Request( url, { method: 'get', parameters: pars, onComplete: mostraResposta }); }function mostraResposta(req){ processXML(req.responseXML);}function processXML(obj){//Pega o id do campovar idOpcao = $('cidades'); //pega a tag cidadevar dataArray = obj.getElementsByTagName("cidade");//total de elementos contidos na tag cidadeif(dataArray.length > 0) { //percorre o arquivo XML paara extrair os dados for(var i = 0; i < dataArray.length; i++) { var item = dataArray[i]; //contéudo dos campos no arquivo XML var codigo = pegaValor(item.getElementsByTagName("id_cidade")[0]); var descricao = pegaValor(item.getElementsByTagName("nome_cidade")[0]); // Cria campos var novo = document.createElement("option"); //atribui um ID a esse elemento novo.setAttribute("id", "opcoes"); //atribui um valor novo.value = codigo; //atribui um texto novo.text = descricao; idOpcao.options.add(novo, 1); }} else { //caso o XML volte vazio, printa a mensagem abaixo // idOpcao.innerHTML = "Selecione um Material"; } }// ROTINA: Retorna os valoes do nofunction pegaValor(no){ if(no.childNodes.length>0){ return no.firstChild.nodeValue; //Tem filho } else { try{ return no.nodeValue } catch (e) { return ""; } }}</script></head><body><div id="Results"></div><form> <select name="cidades" id="cidades"> <option value="">Selecione o Estado</option> </select></form><a href="java script:buscaCidades();">Estado</a></BODY></HTML>Discussão (5)
Carregando comentários...