Problema: Usar Modal Windows (Popup) en vez de Listas Desplegables en Create Form

Hola gente… Expongo mi problema…

Tengo dos tablas relacionadas, discos y detallesdisco, donde un disco puede tener varios detalles y un detalle solo pertenece a un disco (UNO a MUCHOS)… Bueno, por defecto cuando hacemos el CRUD de algun Modelo el formulario de creacion se crea con input text y cuando quiero crear un nuevo detalle de disco tengo que indicar a que disco pertenece, o sea la clave foranea, poco práctico porque nadie anda por la vida memorizandose ID’s…

Una mejor forma de hacerlo es crear una lista desplegable con todos los Discos para seleccionar a que disco pertenece el detalle que se va a crear… Asi:

Ver imagen Discoteca1.png

Pero aun así me parece poco práctico lo de las listas desplegables porque no se ve bien cuando son muchos items asi que decidi seleccionar el Id del Disco desde una ventana Modal… Asi:

Ver Imagen Discoteca2.png

Bueno, al seleccionar un Disco tendria que copiar el ID en algun input de la ventana principal (padre) pero no lo hace… El código del Boton del CGridView es el siguiente:




<?php $this->widget('zii.widgets.grid.CGridView', array(

	'id'=>'discos-grid',

	'dataProvider'=>$model->search(),

	'filter'=>$model,

        //'template'=>'{items}',

	'columns'=>array(

		'id',

		'cod',

		'fecha',

		array(

                        'header'=>'Acciones',

			'class'=>'CButtonColumn',

                        'template'=>'{Seleccionar}',

                        'buttons'=>array(

                            'Seleccionar'=>array(

                                'label'=>'Seleccionar',

                                'url'=>'"#"',

                                //'onClick'=>'alert("Que lo remil pario...")'

                                //'htmlOptions'=>array('onClick'=>'javascript: alert("Que lo remil pario...");'),

                                //'click'=>'function(){alert("Going down!");}',

                                'click'=>'function(){parent.document.getElementById("miEntrada").value="'.'$data->id'.'";}',

                                //'click'=>'Yii::app()->clientScript->registerScript("myscript", "")',

                            ),

                        ),

		),

	),

)); ?>



Prácticamente todo va bien excepto que cuando hago click en seleccionar y se ejecuta la funcion javascript definida en ‘click’, en el input text de la pagina principal me aparece $data->id en vez del ID que se suponde deberia recuperar del Modelo… Asi:

Ver imagen Discoteca3.png

Alguien sabe porque sucede esto y como puedo solucionarlo???

Solucionado…

En el evento click:




     'click'=>'js:function(){

                                                parent.document.getElementById("id_de_algun_input_text").value=$(this).parent().parent().children(":nth-child(1)").text();

                                                parent.document.getElementById("id_de_otro_input_text").value=$(this).parent().parent().children(":nth-child(4)").text();

                                          }'



Donde child(1) y child(4) corresponde a la columna 1 y 4 del CGridView…