Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Redireccionar con AJAX

Estas en el tema de Redireccionar con AJAX en el foro de Frameworks JS en Foros del Web. Hola, ¿qué tal?, despúes de un largo intento de tratar de redireccionar despúes del innerHTML en la petición de ajax logré "más o menos" hacer ...
  #1 (permalink)  
Antiguo 24/12/2010, 08:49
 
Fecha de Ingreso: septiembre-2010
Mensajes: 48
Antigüedad: 13 años, 7 meses
Puntos: 3
Exclamación Redireccionar con AJAX

Hola, ¿qué tal?, despúes de un largo intento de tratar de redireccionar despúes del innerHTML en la petición de ajax logré "más o menos" hacer la redireccion si es que los datos de ingreso son correctos, tengo lo siguiente:

Código:
document.getElementById(div).innerHTML=ajax.responseText; 
setTimeout(window.location='./',3000);
Se supone que despúes de 3 segundos (3000) se redireccione la web, la verdad estuve leyendo y fue lo primero que se me ocurrió ya que si pongo directamente window.location no se lleva acabo la redirección.

Lo que me falla es:
Redireccionar despúes del innerHTML (sean o no sean correctos los datos).

¿Alguna sugerencia?
  #2 (permalink)  
Antiguo 24/12/2010, 21:22
 
Fecha de Ingreso: marzo-2010
Mensajes: 68
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Redireccionar con AJAX

lo mas sencillo es que mandes una respuesta ajax con un "bien" o "mal"--> o "si" o "no" dependiendo de la validacion que hagas en la pagina que procesas
por ejemplo

if(($usuario == "xziolh") and ($clave == "1234")){
echo "bien";
}else{
echo "mal";
}

donde "xziolh" y "1234" podrian ser cambiados por una variable con datos de una BD o cookie, etc..

asi pues la respuesta del ajax.responseText sera un "bien" o "mal" dependiendo de la validacion..

ya quedaria hacer algo como
var resp = ajax.responseText;
if(resp == "bien"){
document.location.href='la_otra_pagina.extension';
}else{
alert("Datos incorrectos!!");
}

espero te sirva..
SALUDOS
  #3 (permalink)  
Antiguo 25/12/2010, 10:52
 
Fecha de Ingreso: septiembre-2010
Mensajes: 48
Antigüedad: 13 años, 7 meses
Puntos: 3
Respuesta: Redireccionar con AJAX

Cita:
Iniciado por xziolhvinvhgl Ver Mensaje
lo mas sencillo es que mandes una respuesta ajax con un "bien" o "mal"--> o "si" o "no" dependiendo de la validacion que hagas en la pagina que procesas
por ejemplo

if(($usuario == "xziolh") and ($clave == "1234")){
echo "bien";
}else{
echo "mal";
}

donde "xziolh" y "1234" podrian ser cambiados por una variable con datos de una BD o cookie, etc..

asi pues la respuesta del ajax.responseText sera un "bien" o "mal" dependiendo de la validacion..

ya quedaria hacer algo como
var resp = ajax.responseText;
if(resp == "bien"){
document.location.href='la_otra_pagina.extension';
}else{
alert("Datos incorrectos!!");
}

espero te sirva..
SALUDOS
Gracias por responder, pero si te das cuenta el problema que tengo es el tiempo en que tarda en redireccionar, se supone que 3000 son 3 segundos pero no tarda mas de 1 segundo en redireccionar y es lo que no quiero.

Cito parte del post que hice:
Código:
document.getElementById(div).innerHTML=ajax.responseText; 
setTimeout(window.location='./',3000);
Saludos.
  #4 (permalink)  
Antiguo 25/12/2010, 12:07
 
Fecha de Ingreso: marzo-2010
Mensajes: 68
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Redireccionar con AJAX

hola ;D

..

ok entonces verifica esta parte...

if(resp == "bien"){
document.location.href='la_otra_pagina.extension';
}else{
alert("Datos incorrectos!!");
}

y donde se colocó document.location.href='la_otra_pagina.extension' coloca lo siguiente:
setTimeout("redireccionar()",3000);

obviamente habra una funcion redireccionar
function redireccionar(){
document.location.href = 'la_otra_pagina.extension';
}

quedaría así:

if(resp == "bien"){
setTimeout("redireccionar()",3000);
}else{
alert("Datos incorrectos!!");
}

ahora bien, si lo haces de este modo te recomiendo tener agrupadas todas las redirecciones que hagas en tu web.. de esta forma no te perderas en el script buscandolas y verificando para donde redireccionaban..
podrías hacer algo como

Código Javascript:
Ver original
  1. var redirecciones = {
  2.        redireccion_uno : function(){
  3.               document.location.href = 'una_pagina.extension';
  4.        },
  5.    
  6.        redireccion_dos : function(){
  7.               document.location.href = 'otra_pagina.extension';
  8.        }
  9. };

y ya pues queda llamar la redireccion de la siguiente manera:

redirecciones.redireccion_uno(); ó redirecciones.redireccion_dos();

espero te sirva..

SALUDOS
  #5 (permalink)  
Antiguo 25/12/2010, 20:47
 
Fecha de Ingreso: septiembre-2010
Mensajes: 48
Antigüedad: 13 años, 7 meses
Puntos: 3
Respuesta: Redireccionar con AJAX

Muchas gracias, lo tomaré como referencia, ahora te explico:

En el login que esta en la página príncipal, sean correctos o sean malos ocupo hacer la redirección al index.php (es decir, la misma página) ya que ahi tengo unas clases y funciones para si tiene la sesión haga "x" cosas, si no "y" cosas.

Bueno, el problema no consta en que si redirige a la página, si no que con settimeout en 3000 no me lo redirige en 3 segundos si no en 1.

Saludos.
  #6 (permalink)  
Antiguo 26/12/2010, 04:20
(Desactivado)
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 471
Antigüedad: 19 años
Puntos: 45
Respuesta: Redireccionar con AJAX

Es imposible eso que dices, si está especificado en 3000 debe ser 3000 y no 1000. Comprueba bien que tengas el código incorrecto.
  #7 (permalink)  
Antiguo 26/12/2010, 04:25
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Redireccionar con AJAX

Hola:

Te falta poner lo que quieres como una cadena, o si es una función, también puedes poner solo el nombre sin el juego de paréntesis...

setTimeout("location.href= './'",3000);

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 26/12/2010, 10:06
 
Fecha de Ingreso: marzo-2010
Mensajes: 68
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Redireccionar con AJAX

verifica la anterior opcion... ó,

una pregunta el botón donde clickeas "aceptar" o "enviar" es de tipo submit de un formulario??
xq si es así, allí puede estar el detalle que no entre a una funcion JavaScript si no que de una vez envia envía el form a la misma página index.php
  #9 (permalink)  
Antiguo 26/12/2010, 19:32
 
Fecha de Ingreso: septiembre-2010
Mensajes: 48
Antigüedad: 13 años, 7 meses
Puntos: 3
Respuesta: Redireccionar con AJAX

Listo, problema solucionado, la solución era como la indico el moderador caricatos pero muchísimas gracias a xziolhvinvhgl porque me ayudaste tambien a arreglar otras cositas que tenía mal, tambien a Rodil por comentar.

Y si, el problema no ponía muy bien los parametros del setTimeout y ya con lo siguiente funciona correctamente:
Código Javascript:
Ver original
  1. document.getElementById(div).innerHTML=ajax.responseText;
  2. setTimeout("location.href='./'",3000);

P.D: El botón si es un type submit, pero de igual forma funciono con el código de arriba, reitero, gracias.
De verdad muchísimas gracias a los 3, saludos y un feliz año nuevo.

Etiquetas: ajax, login, php, redireccionar, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:37.