Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/08/2011, 11:30
SeaPirates
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 2 meses
Puntos: 9
Redirigir en ajax

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 original
  1. function nuevoAjax(){
  2.     var xmlhttp=false;
  3.     try {
  4.     xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  5.     } catch (e) {
  6.     try {
  7.     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  8.     } catch (E) {
  9.     xmlhttp = false;
  10.     }
  11.     }
  12.  
  13.     if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  14.     xmlhttp = new XMLHttpRequest();
  15.     }
  16.     return xmlhttp;
  17. }
  18. //Submit form ajax
  19. function enviarFormulario(url, formid, divrespuesta){
  20.         var Formulario = document.getElementById(formid);
  21.         var longitudFormulario = Formulario.elements.length;
  22.         var cadenaFormulario = "";
  23.         var sepCampos;
  24.         sepCampos = "";
  25.         for (var i=0; i <= Formulario.elements.length-1;i++) {
  26.             cadenaFormulario += sepCampos+Formulario.elements[i].name+'='+encodeURI(Formulario.elements[i].value);
  27.             sepCampos="&";
  28.     }
  29.     peticion=nuevoAjax();
  30.     peticion.open("POST", url, true);
  31.     peticion.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1');
  32.     peticion.send(cadenaFormulario);
  33.     peticion.onreadystatechange = function() {
  34.           if (peticion.readyState == 4 && (peticion.status == 200 || window.location.href.indexOf ("http") == - 1)){
  35.                 if(peticion.responseText == "Cargando..."){
  36.                 window.location.href='./';
  37.                 }else{
  38.                 document.getElementById(divrespuesta).innerHTML = peticion.responseText;
  39.           }
  40.           }
  41.     }
  42. }

¿Alquien sabría decirme porqué o otro modo de hacerlo?