jessepatricio Postado Agosto 31, 2009 Denunciar Share Postado Agosto 31, 2009 (editado) tenho esse codigo que funciona assim:http://www.idealrepresentacoes.com.br/site/produtos.phpse Você selecionar um item do list box ele age corretamente, mas quando você vai selecionar outro item ele adiciona os valores, mas mmeu querer é que ele limpe a categoria quando for pedido outro item entederam????se puderem me ajudar, eu agradeço.podem entra em contatop pelo meu MSN:[email protected]. function subcategorias(categoria_id) { ajax = false; if(window.XMLHttpRequest) ajax = new XMLHttpRequest(); else ajax = new ActiveXObject("Microsoft.XMLHTTP"); if(ajax) { ajax.open('POST','ajax.php',true); ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajax.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate"); ajax.setRequestHeader("Cache-Control", "post-check=0, pre-check=0"); ajax.setRequestHeader("Pragma", "no-cache"); ajax.send('acao=subcategorias&valor='+categoria_id); ajax.onreadystatechange = function() { if(ajax.readyState == 4) { if(ajax.status == 200) { document.getElementById('conteudo').innerHTML = ajax.responseText; } } } } else{ alert('Este navegador não possui suporte a Ajax.'); } return ajax; } function lista_produtos(subcategoria_id) { ajax = false; if(window.XMLHttpRequest) ajax = new XMLHttpRequest(); else ajax = new ActiveXObject("Microsoft.XMLHTTP"); if(ajax) { ajax.open('POST','ajax.php',true); ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajax.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate"); ajax.setRequestHeader("Cache-Control", "post-check=0, pre-check=0"); ajax.setRequestHeader("Pragma", "no-cache"); ajax.send('acao=lista_produtos&valor='+subcategoria_id); ajax.onreadystatechange = function() { if(ajax.readyState == 4) { if(ajax.status == 200) { document.getElementById('conteudo').innerHTML+= ajax.responseText; } } } } else{ alert('Este navegador não possui suporte a Ajax.'); } return ajax; } Editado Agosto 31, 2009 por Jonathan Queiroz Adcionar tag's (Jonathan) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Danilo Moraes Postado Agosto 31, 2009 Denunciar Share Postado Agosto 31, 2009 (editado) Cara, tenho uma observacao a fazer com relacao ao seu codigo. Que acha de bolar um sistema de fila para as suas requisicoes ajax? Da maneira como esta, você tem que instanciar um objeto XMLHttpRequest a cada nova requisicao em "paralelo". Da uma pesquisada sobre fila de requisicoes ajax.O conteudo esta sendo concatenado ou melhor, não esta sendo tirado da tela quando seleciona o otro, porque você esta usando essa linha:document.getElementById('conteudo').innerHTML+= ajax.responseText; Esse += esta colocando o conteudo anterior mais o atual. Tenta usar esse novo code aki que fiz: function subcategorias(categoria_id) { ajax = false; if(window.XMLHttpRequest) ajax = new XMLHttpRequest(); else ajax = new ActiveXObject("Microsoft.XMLHTTP"); if(ajax) { ajax.open('POST','ajax.php',true); ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajax.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate"); ajax.setRequestHeader("Cache-Control", "post-check=0, pre-check=0"); ajax.setRequestHeader("Pragma", "no-cache"); ajax.send('acao=subcategorias&valor='+categoria_id); ajax.onreadystatechange = function() { if(ajax.readyState == 4) { if(ajax.status == 200) { document.getElementById('conteudo').innerHTML = ajax.responseText; var produtos = document.createElement("div");//criamos um novo div que recebera a lista de produtos produtos.setAttribute("id","produtos");//aki setamos o id do div como produtos, para que na funcao lista_produtos() possamos pega-lo usando getElementById... document.getElementById('conteudo').appendChild(produtos);//colocamos esse novo div criado dentro do div conteudo, obviamente, abaixo de tudo queestiver dentro desse div } } } } else{ alert('Este navegador não possui suporte a Ajax.'); } return ajax; } function lista_produtos(subcategoria_id) { ajax = false; if(window.XMLHttpRequest) ajax = new XMLHttpRequest(); else ajax = new ActiveXObject("Microsoft.XMLHTTP"); if(ajax) { ajax.open('POST','ajax.php',true); ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajax.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate"); ajax.setRequestHeader("Cache-Control", "post-check=0, pre-check=0"); ajax.setRequestHeader("Pragma", "no-cache"); ajax.send('acao=lista_produtos&valor='+subcategoria_id); ajax.onreadystatechange = function() { if(ajax.readyState == 4) { if(ajax.status == 200) { document.getElementById('produtos').innerHTML= ajax.responseText;//colocamos a lista de produtos dentro desse div que foi criado na requisicao anterior } } } } else{ alert('Este navegador não possui suporte a Ajax.'); } return ajax; }Foi simples o que fiz, apenas criei um novo div e coloquei ele dentro do div conteudo. Assim não tem mais que usar o +=...Qualquer duvida so postar aew.T+ Editado Agosto 31, 2009 por Danilo Moraes Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jessepatricio Postado Agosto 31, 2009 Autor Denunciar Share Postado Agosto 31, 2009 Valeu mlk!!!Certinho, Agradecido mesmo!não abusando da sau bondade, mas você sabe como devo fazer para ele inciar já com algum conteudo? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Danilo Moraes Postado Agosto 31, 2009 Denunciar Share Postado Agosto 31, 2009 Sei sim... É so adicionar o conteudo normalmente :PSe tu quer adicionar conteudo usando getElementById, coloca os comandos abaixo do appendChild()...tipo: document.getElementById("produtos").innerHTML = "algo";Mas lembre-se que innerHTML não é aconselhado para inserir conteudo a não ser quando se trata do objeto XMLHttpRequest que ainda não foi padronizado pela W3C :PAconselho a criar textos e tags com createElement() e depois adiciona-los no div com appendChild().Se tu me disser o que quer por nele, acho que posso ser mais específico.T+ :P Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
jessepatricio
tenho esse codigo que funciona assim:
http://www.idealrepresentacoes.com.br/site/produtos.php
se Você selecionar um item do list box ele age corretamente, mas quando você vai selecionar outro item ele adiciona os valores, mas mmeu querer é que ele limpe a categoria quando for pedido outro item entederam????
se puderem me ajudar, eu agradeço.
podem entra em contatop pelo meu MSN:[email protected].
Editado por Jonathan QueirozAdcionar tag's (Jonathan)
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.