Estou começando a mexer com Ajax, e ja surgiu uma duvida. Acho eu que é referente ao php..
Vamos la..
Criei uma função javascript para qdo escolher um item na combox ele busque em um xml e crie uma outra combox com os itens referentes..
Então quando eu vou buscar direto no arquivo .xml, ele funciona beleza.
Agora qdo eu peço pra buscar em um arquivo .php ( que gera um xml) ele acusa dizendo q nao foi encontrado nenhum nó filho..
O meu código php
if(!empty($_GET['categoria'])){ $_sql = "SELECT * FROM produto WHERE categoria_id='".$_GET['categoria']."' ORDER BY categoria_id, descricao"; $_res = $ObjConexao->sql($_sql); if($_res === 0){ echo "Erro na Busca de Produtos"; } else{ $_xml .= '<?xml version="1.0" encoding="iso-8859-1"?>'; $_xml .= '<categoria>'; while($_row = mysql_fetch_array($_res)){ $_xml.= '<produto>'; $_xml.= '<codigo>'.$_row['cod_produto'].'</codigo>'; $_xml.= '<descricao>'.$_row['descricao'].'</descricao>'; $_xml.= '</produto>'; } $_xml .= '</categoria>'; } } echo $_xml;
tentei um codigo mais simples como esse, e deu o mesmo erro
echo ' <?xml version="1.0" encoding="iso-8859-1"?> <categoria> <produto> <codigo> 1 </codigo> <descricao> teste </descricao> </produto> </categoria> ';
Minhas funcoes java script
function selecionarProdutos(){ var categoria = document.busca.categoria.value; if(categoria>0){ // busca os produtos desta categoria. AjaxRequest(); if(!ajax){ alert('Não foi possivel iniciar o Ajax'); return; } ajax.onreadystatechange = mostraProdutos; ajax.open('GET','busca_produtos.php?categoria='+categoria,true); ajax.send(null); }else{ alert('favor selecionar a Categoria de produtos'); } } function mostraProdutos(){ if(ajax.readyState == 4){ if(ajax.status == 200){ var xmldoc = ajax.responseXML; if(xmldoc.hasChildNodes()){ var nos = xmldoc.getElementsByTagName('produto'); var categoria = document.busca.categoria.value; var selp = document.busca.produtos; selp.options.length = 0; var opt = new Option('Selecione o Produto Desejado','-1'); selp.add(opt); for(var i=0; i<nos.length; i++){ var no = nos[i]; var cod = no.childNodes[0].firstChild.nodeValue; var des = no.childNodes[1].firstChild.nodeValue; var opt = new Option(cod,des); selp.add(opt); } }else{ alert(' Não foi encontrado nós filhos ');} }else{ alert('Erro no retorno do servidor ' + ajax.statusText); } } }
tentei utilizar a classe DOMDocument para gerar o xml.. mas não funcionou no meu servidor =/
essa classe soh funciona no PHP5 ??
Se alguem puder me ajudar ai, fico agradecido
Valeu