Hola, con el script que muestro a continuación ejecuto un archivo php. El problema es que no se puede usar header porque incluye el contenido en el resultado. Tampoco puedo usar script porque no sé porque razon no lo ejecuta. He intentado poner un echo que ponga "Cargando..." en el php y luego con un if si es "Cargando..." que redirija desde el ajax. Pero solo me funciona para el login de mi web, cuando lo ejecuto en el registro me muestra "Cargando..." pero no redirije.
Código Javascript
:
Ver originalfunction nuevoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
//Submit form ajax
function enviarFormulario(url, formid, divrespuesta){
var Formulario = document.getElementById(formid);
var longitudFormulario = Formulario.elements.length;
var cadenaFormulario = "";
var sepCampos;
sepCampos = "";
for (var i=0; i <= Formulario.elements.length-1;i++) {
cadenaFormulario += sepCampos+Formulario.elements[i].name+'='+encodeURI(Formulario.elements[i].value);
sepCampos="&";
}
peticion=nuevoAjax();
peticion.open("POST", url, true);
peticion.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1');
peticion.send(cadenaFormulario);
peticion.onreadystatechange = function() {
if (peticion.readyState == 4 && (peticion.status == 200 || window.location.href.indexOf ("http") == - 1)){
if(peticion.responseText == "Cargando..."){
window.location.href='./';
}else{
document.getElementById(divrespuesta).innerHTML = peticion.responseText;
}
}
}
}
¿Alquien sabría decirme porqué o otro modo de hacerlo?