Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/03/2014, 15:38
Avatar de rfadgrmm
rfadgrmm
 
Fecha de Ingreso: junio-2009
Mensajes: 74
Antigüedad: 14 años, 10 meses
Puntos: 1
Pregunta Llamar funcion Ventana Padre desde Hija (iframe)

Hola, que tal? Tengo un proyecto en el que involucran PHP, JQuery, Underscore (para generar plantillas) y OrangeBox. Estoy tratando de actualizar un DIV que muestra inicialmente el listado de usuarios, cuando carga la página lo hace a través de esta función...

Código Javascript:
Ver original
  1. //VENTANA PADRE...
  2. function CargaTabla() {
  3.     var params = { "comando" : "ver-listado" }
  4.     $.ajax({
  5.         data: params,
  6.         dataType: 'json',
  7.         url: "http://miweb.dev/op-usuarios/cmd/usuarios",
  8.         type: "post",
  9.         beforeSend: function() {
  10.             $("#CargandoID").css("display", "inline");
  11.         },
  12.         success: function(respuesta) {
  13.             var datos = {"datos" : respuesta };
  14.             var compilado = _.template($("#MostrarListaID").html());
  15.             $("#CargandoID").css("display", "none");
  16.             $("#ListadoUsuariosID").html(compilado(datos));
  17.             $("#TablaUsuariosID").tablesorter({ sortList: [[1,0]], headers: { 0: {sorter: false}}, widgets: ['zebra'] });
  18.         }
  19.     });
  20. }
  21. $("#TablaUsuariosID").load(CargaTabla());

Código HTML:
<!-- VENTANA PADRE... -->
<table id="TablaUsuariosID" class="tablesorter">
	<thead>
		<tr>
			<th style="width: 10%;">&nbsp;</th>
			<th style="width: 36%;">Nombre Completo</th>
			<th style="width: 14%;">ID Usuario</th>
			<th style="width: 18%;">Perfil Asignado</th>
			<th style="width: 14%;">Actualización</th>
			<th style="width: 8%;">Estado</th>
		</tr>
	</thead>
	<tbody id="ListadoUsuariosID">
	</tbody>
</table>
<script type="text/template" id="MostrarListaID">
	<% for (var i = 0; i < datos.length; i++) { %>
	<tr>
		<td><% print(datos[i].ID); %></td>
		<td><% print(datos[i].ApeNombre); %></td>
		<td><% print(datos[i].Usuario); %></td>
		<td><% print(datos[i].Perfil); %></td>
		<td><% print(datos[i].Actualizado); %></td>
		<td><% print(datos[i].Estado); %></td>
	</tr>
	<% } %>
</script> 
Tengo un formulario que se abre en una ventana hija IFRAME (OrangeBox) para agregar usuario, el cual me funciona a la perfección, con todos sus filtros. Quisiera llamar a la función CargaTabla(), que está declarada en la ventana padre, una vez que le haga click en "Guardar Cambios", desde la ventana hija.

Código HTML:
<!-- VENTANA PADRE... -->
<p class="P02B"><a href="http://miweb.dev/op-usuarios/usuario-nuevo?iframe" id="usuario-nuevo-link" class="ui-state-default ui-corner-all" data-rel="lightbox[usr-new]"><span class="ui-icon ui-icon-plusthick"></span>Nuevo Usuario</a></p> 
Código Javascript:
Ver original
  1. //VENTANA HIJA...
  2. $("#guardar-cambios-link").click(function(e) {
  3.     e.preventDefault();
  4.         parent.location.reload(); //FUNCIONAL, PERO ME RECARGA TODA LA PAGINA...
  5.     }
  6. });

Probé con parent.location.reload(), pero me recarga toda la página. Lo que deseo, es recargar sólo el DIV donde se anida la tabla (actualizar esta sección solamente, sin recargar todo), es decir invocar desde la ventana hija esta función, ubicada en la ventana padre.

Código Javascript:
Ver original
  1. //QUE SE PUEDA INVOCAR DESDE LA VENTANA HIJA...
  2. $("#TablaUsuariosID").load(CargaTabla());

Alguien que me pueda orientar en esto, me paseé por Google toda la tarde buscando algunos casos, sin respuesta hasta ahora; también estuve leyendo y probando códigos sugerentes del mismo portal jQuery (como Bind), pero sin resultado alguno. Toda respuesta será bienvenida.

Saludos,
__________________
"Viajando en el espacio profundo, de nova en nova, y sorteando a veces uno que otro agujero negro..." Peru@D

Última edición por rfadgrmm; 09/03/2014 a las 15:41 Razón: Especificar más detalles...