[RESUELTO] retornar datos a la pagina llamadora

Hola

supongamos que estoy cargando un libro a una base de datos de libros, y al momento de cargar la editorial, èsta editorial no existe

hay forma de ir a la ventana de ingreso de editoriales (con un boton dentro de la misma ventana donde estoy que abra una nueva ventana), cargar la nueva editorial y cuando retorno, me complete el campo con la editorial ingresada?

osea

hay forma de ir a una pagina, trabajar en ella y luego retornar un valor o un arreglo a la pagina llamadora?

espero se pueda !!

Tu duda, creo yo… no tiene que ver tanto con Yii sino con la lógica de programación que debes utilizar en dicho caso de uso, es decir, lo que te voy a comentar a continuación lo podrías aplicar en cualquier escenario y en cualquier framework…

Lo que yo veo que podrías hacer es lo siguiente:

Opción 1: en el formulario donde estés agregando o editando el libro, podrías tener un botón que diga "Agregar editorial" y que al hacer clic te abra un popUp (puede ser con fancyBox) con un formulario para agregar una editorial y cuando des clic en el botón que agrega la editorial nueva, debes hacer que se almacene en BD, luego hacer que se recargue la lista de editoriales que se muestra en el formulario de agregar o editar libro (esto puedes hacerlo con ajax) y por ultimo hacer que se cierre solo el popUp. De esta manera tendrías en tu formulario de libro, la lista con la editorial que agregaste y no se perderían los datos que ya habías ingresado en el formulario.

Opción 2: en la pantalla podrías tener dos pestañas, una para agregar o editar el libro y otra para agregar editoriales, entonces en el momento que quieras agregar una editorial haces clic en la pestaña para tal fin y lo que haría internamente podría ser que ocultara el div que contiene el formulario de libro y mostrar el formulario de editorial… cuando termines de agregar la editorial y presiones el botón para agregarla lo que pasaría es que tendrías que actualizar la lista de editoriales que aparece en el otro formulario y volver a ocultar el formulario de editoriales para mostrar de nuevo el de libro.

Opción 3: en el formulario de libro, simplemente muestra una opción que diga "otra editorial" y cuando el usuario haga clic allí entonces muestrale un campo de texto para que él ingrese la nueva editorial en el mismo formulario de libro.(solución mas simple)

Yo personalmente me inclinaría por la opción 1 o 3, esto tienes que hacerlo de alguna de estas formas porque si cambias de formulario simplemente recargando la pagina… pues se te van a perder los datos, a menos que con algún botón lo guardes en sesión y luego lo recuperes pero no me parece muy buena idea… de cualquier forma, la opción que elijas para solucionar este problema… Yii te lo permitirá hacer porque es muy flexible.

avisame si algo no te quedó claro! ;)

Gracias Juan

intentare la opcion 1, soy nuevo no solo en yii, tambien en PHP, ajax, etc

en cuanto tenga la soluciòn, pondre el codigo para que le sirva a otros

saludos

hola comunidad

lo que hice fue

desde la ventana llamadora




<script type="text/javascript">

function abrirVentana(){

  var url="/sistemas/index.php?r=seguridad/usuarios/create";

  //return showModalDialog(url);

  window.open(url,"Nuevo Usuario","alwaysRaised=yes,toolbar=no,menubar=no,status=no,resizable=yes,width=400,height=300")

}

</script>



y desde el PopUp




<script type="text/javascript">

function selecciona(idUsuario) {

window.opener.document.getElementById('UsuarioRoles_usu_id_usuario').value = idUsuario;

window.close();

};

</script>



donde "UsuarioRoles_usu_id_usuario" es el "id" en la pagina llamadora

lo mejor de esto fue que descubri como hacer una LOV (Lista de valores) L.O.V.

cuando la lista tiene muchos datos (digamos cientos de miles)

usar dropdown es muy costoso (pagina pesada)

ajax tambien es pesado para el servidor

pero hacer una LOV (con filtro), hace que la ventana popup solo cargue parte de los datos

y ademas deja paginar el resultado

espero me entiendan (eso sobre todo) y les sirva !!!

saludos