Ajuda com AJAX/JavaScript - Javascript - Portugal-a-Programar
Ajuda com AJAX/JavaScript
Por TheGlorious, 7 de Novembro de 2008 em Javascript
Vem o Ajax/JavaScript não são a minha área, no entanto precisei de utilizar ajax e consegui fazê-lo, mas agora a coisa complicou-se...
Baseei-me no seguinte código: w3schools.
O meu problema é que preciso de usar essa mesma função duas vezes na mesma página em div's diferentes, no entanto, quando o tento fazer simplesmente não aparecem. O que eu tentei foi o seguinte:
if (url == 'pagina1.php') {
} else if (url == 'pagina2.php') {
xmlhttp.onreadystatechange=state_Change2;
alert("O teu navegedor não suporta AJAX.");
alert("Ocorreu o seguinte erro:" + xmlhttp.statusText);
document.getElementById('T2').innerHTML=xmlhttp.responseText;
E depois tenho:
<body onload="loadXMLDoc('pagina1.php');loadXMLDoc('pagina2.php')">
Se alguém me puder ajudar, ficaria muito grato. Obrigado.
Usa uma framework de ajax, e lê a documentação referente ao que pretendes
Uma framework porquê?
Fica mais simples, e se ele diz que js e ajax não é a àrea dele, fica mais em conta .. Se quisesse aprender como funciona js e ajax, era outra coisa ..
Caso queiras a solução para o teu problema, no fim de cada request, faz reset do objecto xmlhttp .. deve ser por isso que não consegues ..
Pessoal, não se esqueçam da finalidade última deste fórum que é a ajuda mútua.
Dizer "usa uma framework" não é propriamente ajudar.
Vamos lá tentar descobrir o problema.
Primeiro e antes de tudo: aparece-te algum erro na consola de erros?
nas funções state_Change e state_Change2 estas a chamar o xmlhttp que não esta a ser passado para a função, aposto que o erro está ai!
xmlhttp.onreadystatechange= function() {state_Change2(xmlhttp) }
e nao te esqueças da declaração da state_Change e state_Change2 tens que ser state_Change(xmlhttp) e state_Change2(xmlhttp)
Não precisa passar na função Sven, é variavel publica
E pedrotuga, bem sei disso, e já apanhei respostas bem piores por aqui :eek:
De qualquer modo, não é hábito meu dar respostas destas, peço desculpa :-[
É verdade não reparei, mas não pode ser publica!
da segunda chamada a função o valor da primeira desaparece e nunca vai receber o conteudo
Poder pode, tem é de levar um reset pelo meio
Antes demais queria agradecer pelas respostas.
Agora aqui vai, tenho uma carga horária muito preenchida pelo que não tenho tempo para aprender js/ajax.
Depois, framework? Desculpa, mas não faz o meu género, sei que também existem frameworks para php e tudo mais, mas sinceramente nunca usei e se queres que te diga nem faço ideia de como funciona, a única coisa que uso é o dreamweaver cs3 e é la que faço todos os meus códigos php.
E por fim, como para resolver o problema o que fiz foi juntar as duas páginas, assim sendo, só preciso de chamar uma vez a função.
Agora, quero agradecer uma vez mais a todos e
ainda pedir desculpa pela minha ignorância e pela vossa perda de tempo.
Eu compreendo aquilo que o pedrotuga está a dizer mas também sou da opinião da framework, principalmente para AJAX. Simplifica muito as coisas e permite que o programador se abstraia um pouco do browser que o cliente está a usar pois a framework faz todo o trabalho sujo.
@TheGlorious
Eu não sou a melhor pessoa para fazer descrições, mas uma framework é no fundo um conjunto de funções que te facilitam certas tarefas que sem uma framework poderiam tornar-se demasiado repetitivas em cada projecto que venhas a fazer. Pior descrição do ano de alguma coisa, mas talvez te ajude a perceber. E se optares em aprender uma framework, eu recomendo jQuery, mas também é a única que uso/usei, portanto a minha opinião neste assunto é limitada.