Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/02/2013, 07:08
eamanesims
 
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