silvino
Power Member
Olá,
Estou com um problema no meu "ajax", já procurei no google mas nada é conclusivo.
Tudo funciona aparentemente bem no que toca a funcionalidade, o ajax faz o pedido e
trata a reposta como é esperado. Mas apartir do momento em que chamo a função
ajax, toda a página que foi escrita a unha em xhtml strict passa automaticamente para
html, como se converte-se todas as tags. Isto leva a alguns problemas de xhtml.
Aqui ficam as funções javascript,
Função xht, realiza o pedido ao servidor.
Parametros;
url -> url para o ficheiro php que tratará o pedido
param -> parametros\variaveis neste caso tudo pelo método post
elev -> elemento do DOM velho que será substituido na pagina html pela resposta
elen -> novo elemento que contem a resposta
Função trata a resposta do servidor
Parametros;
resp -> resposta dada pelo servidor
elev -> id do elemento a ser removido
elen -> id do elemento a ser acrescentado com a resposta
Estou com um problema no meu "ajax", já procurei no google mas nada é conclusivo.
Tudo funciona aparentemente bem no que toca a funcionalidade, o ajax faz o pedido e
trata a reposta como é esperado. Mas apartir do momento em que chamo a função
ajax, toda a página que foi escrita a unha em xhtml strict passa automaticamente para
html, como se converte-se todas as tags. Isto leva a alguns problemas de xhtml.
Aqui ficam as funções javascript,
Função xht, realiza o pedido ao servidor.
Parametros;
url -> url para o ficheiro php que tratará o pedido
param -> parametros\variaveis neste caso tudo pelo método post
elev -> elemento do DOM velho que será substituido na pagina html pela resposta
elen -> novo elemento que contem a resposta
Código:
function xht(url, param, elev, elen){
var http = new XMLHttpRequest();
http.open("POST", url, true);
http.overrideMimeType('text/html');
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", param.length);
http.setRequestHeader("Connection", "close");
http.onreadystatechange = function() {
if(http.readyState == 4 && http.status == 200) {
var resp=http.responseText;
if(typeof(elen) == "undefined"){
alert(resp.childNodes[0]);
}
trata(resp, elev, elen);
}
}
http.send(param);
}
Parametros;
resp -> resposta dada pelo servidor
elev -> id do elemento a ser removido
elen -> id do elemento a ser acrescentado com a resposta
Código:
function trata(resp, elev, elen){
var novo = document.createElement("div");
novo.setAttribute("id", elen);
novo.innerHTML=resp;
var superior = document.getElementById(elev).parentNode;
var velho = document.getElementById(elev);
superior.removeChild(velho);
superior.appendChild(novo);
}
Última edição: