Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] window.location no redirecciona la 2ª vez

Estas en el tema de window.location no redirecciona la 2ª vez en el foro de Javascript en Foros del Web. Hola a tods! Os pongo en situación, aunque es lioso espero que me entendáis XD, tengo una ventana con 2 tabs de jquery, el problema ...
  #1 (permalink)  
Antiguo 27/02/2013, 07:08
 
Fecha de Ingreso: noviembre-2011
Mensajes: 117
Antigüedad: 12 años, 5 meses
Puntos: 2
window.location no redirecciona la 2ª vez

Hola a tods!

Os pongo en situación, aunque es lioso espero que me entendáis XD, tengo una ventana con 2 tabs de jquery, el problema es en la pestaña 2, tengo un maestro-detalle de pedidos:

Cargo tabla 1 con los pedidos y debajo tabla 2 con las lineas del pedido seleccionado (esto ultimo lo hago con ajax claro)

Entonces cuando quiero insertar / modificar una línea llamo a una función de javascript a la que envío los parámetros necesarios, y con ellos llama con ajax a un .php que hace la actualización o insert, después desde ese mismo .php redirecciona de nuevo a la ventana de visualización de pedidos con el pedido que he modificado para que se muestren los cambios directamente, enviándole por get el cliente, proyecto y muestra en la que estoy:

verDatosMuestras.php?cliente=1&proyecto=2&IDMuestr a=371#tabs-2

hasta ahí todo funciona perfectamente, el problema viene cuando quiero eliminar una línea, para esto tengo una función en javascript (eliminarByID) que llama también a un .php con ajax y lo borra, la única diferencia es que la redirección la hago desde el success de la llamada a ajax.

El problema es que cuando vuelve, en la URL tiene:

verDatosMuestras.php?cliente=1&proyecto=2&IDMuestr a=371#tabs-2

(la URL esta bien) pero realmente no ha redireccionado porque me sigue apareciendo la línea que se ha borrado, entonces tengo que hacer F5 para que se actualice. ( a veces lo hace bien pero solo la primera línea que elimino)

No entiendo porque funciona cuando redirecciono desde .php y no desde javascript.

************
Me he dado cuenta de que si pongo esto en el success:
alert(redireccionar);
window.location.href=redireccionar;
alert(window.location);
window.location.reload();

cuando hago el 2º alert(que es la URL actual) se supone que ya ha hecho la redirección pero no porque me sigue mostrando la URL que había antes de hacer window.location y al recargar con reload me recarga la URL anterior.

Seguro que lo estoy haciendo mal pero es que no lo entiendo,

¿por qué si pongo antes el window.location no se ha efectuado cuando pasa al siguiente paso que es la recarga?
¿solo lo hace la 1ª vez entonces quizás sea porque estoy intentando redireccionar a la misma URL? y la primera vez lo hace bien pero las siguientes puede que solo tuviera que hacer reload sin redireccion ni nada
*************
la función de javascript que uso para borrar:

Código:
function eliminarRegistro(tabla,idregistro,nom_identif,id_consulta,redireccionar)
{
	if (idregistro == '' || tabla == '')
	{
		jAlert('No hay registros seleccionados.','¡Información!');
	}
	else
	{
		parametros={
			"tabla" : tabla,
			"idregistro" : idregistro,
			"nom_identif" : nom_identif
		}
		
		
		jConfirm('¿Seguro que quieres borrar el registro: ' + idregistro + ' de la tabla: ' + tabla + '?', '¡Atención!', 
		function(resp)
		{
			if( resp == true ) 
			{	
				$.ajax({
				  data: parametros,
				  url : 'BorrarByID.php',
				  type : 'post',
				  success:  function (response) {
					  if (redireccionar != '')
					  {
					      window.location=redireccionar;
					  }
				  }
			  });
			}
		});
	}

}

Última edición por eamanesims; 27/02/2013 a las 07:21
  #2 (permalink)  
Antiguo 27/02/2013, 09:30
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: window.location no redirecciona la 2ª vez

mmm, puede ser porque redireccionar no es una url válida, aplica en php urlencode.

si falla de nuevo intenta window.open(redireccionar, '_top');

prueba con _self o _parent, por lo general _top ha de servir
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 27/02/2013, 10:57
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 2 meses
Puntos: 36
Respuesta: window.location no redirecciona la 2ª vez

No se me hace coherente que hagas una peticion Ajax y desde la peticion redirecciones, si al final de cuenta la pagina en la que estas la vas a redirecciona no tiene caso que uses ajax y hagas el post completo, pero esto no es lo que quieres, quieres que sea dinamica, entonces no necesitas redireccionar la pagina si solo jugar con los tabs para que te muestre lo que deseas una vez que hayas terminado tu peticion.

Por que quieres rediccionar la pagina ? pregunta torpe pero basica para poderte ayudar.
__________________
Reedyseth
Te ayudo? No olvides dar un +
blog:http://behstant.com/blog
En el blog:Tutoriales de Desarrollo Web PHP, Javascript, BD y más.
  #4 (permalink)  
Antiguo 28/02/2013, 05:14
 
Fecha de Ingreso: noviembre-2011
Mensajes: 117
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: window.location no redirecciona la 2ª vez

Hola y gracias por responder a ambos ;)

maycolalvarez:
voy a probar eso que dices a ver si me funciona.

Reedyseth:
Entiendo que sea confuso te explico: ajax lo tengo para que cuando selecciono un registro en el maestro me salgan las lineas de detalle en la otra tabla sin recargar.

Pero por otro lado tengo también opciones de modificar e insertar como comenté en el post, para ello tengo formularios que llaman a un .php por método post que son los que hacen esas acciones entonces una vez hace todas las modificaciones en ese .php tengo que volver de nuevo a la ventana por eso hago la redirección, pero no solo la hago a esa ventana sino que además le envío en la URL el id del pedido que he modificado para que cuando vuelva a la ventana se visualice directamente y el usuario no tenga que volver a hacer click para ver los cambios que ha realizado.

Puede que no sea la mejor forma de hacer esto pero si no lo hago con formularios tendría que hacer más funciones javascript que llamaran a través de ajax a los .php que hacen las modificaciones y no me gusta abusar de ajax.

Quizás el problema es que he intentado usar una misma función de borrado para toda la aplicación, me ha servido en el resto de módulos pero en este caso no me serviría redireccionar, porque como tu dices si uso ajax no tiene sentido, ya que solo tendría que llamar a la función que carga la tabla de nuevo después de borrar, voy a revisar como he hecho este módulo porque seguro que es mas sencillo que ésto que pretendo hacer.

Última edición por eamanesims; 28/02/2013 a las 05:52
  #5 (permalink)  
Antiguo 28/02/2013, 10:47
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 2 meses
Puntos: 36
Respuesta: window.location no redirecciona la 2ª vez

Tienes razon al mencionar que abusas de las peticiones de ajax, pero ten en cuenta que nada mas se procesa la informacion con la que estas trabajando, si recargas la pagina es un proceso mas pesado para el servidor por que tiene que cargar todo de nuevo, en cambio con ajax solo trabaja el servidor con la informacion que le indicas, hay varios sitios que trabajand de esta manera como www.grooveshark.com, una recarga completa se hace dependiento de tus necesidades,

Saludos.
__________________
Reedyseth
Te ayudo? No olvides dar un +
blog:http://behstant.com/blog
En el blog:Tutoriales de Desarrollo Web PHP, Javascript, BD y más.
  #6 (permalink)  
Antiguo 04/04/2013, 03:59
 
Fecha de Ingreso: noviembre-2011
Mensajes: 117
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: window.location no redirecciona la 2ª vez

Al final lo hice con ajax y aunque no m gusta abusar a veces no hay otra forma

Etiquetas: ajax, funcion, jquery, php, vez
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 12:29.