Problema Con Clistview Y Ventana Modal

Hola gente,

voy a ver si puedo explicar mi problemilla y que quede claro, ya que soy relativamente nuevo en esto de Yii jaja.

Tengo dos tablas, Usuario y Ofertas (ofertas que pueden ofrecer los usuarios).

Estoy listando con un zii.widgets.CListView las ofertas que hay. (cada oferta tiene un id de usuario asociado, para saber de quien es):

aqui es donde genero mi widget:


		if(isset($oferta)){

			echo '<h1> Ofertas </h1>';

			

			$dataProvider=new CActiveDataProvider('Oferta');

			$this->widget('zii.widgets.CListView', array(

			'dataProvider'=>$dataProvider,

			'itemView'=>'_ofertaListView',   

			'sortableAttributes'=>array(

			'title',

			),

			));

		}

y aqui donde modifico la salida y demas:




<div>

 <?php $usuario=Usuario::model()->findByPk($data->idusuario) ?>


 	<div class="mensajeOferta" id="<?php echo $botonOferta ?>" style="display:none;">

		<button href="#" id="botonMensajeOferta" style="height:60px;width:65px;" onclick="toogle('block','modal','ventana')">Mensaje a <?php echo $usuario->nickname; ?></button>

	</div>

 

<div class="view" id="<?php echo $oferta?>" style="cursor: pointer;">

	

	<b><?php echo CHtml::encode('Nombre Usuario'); ?>:</b>

	<?php echo CHtml::encode($usuario->nickname); ?>

	<br />


	<b><?php echo CHtml::encode($data->getAttributeLabel('titulo')); ?>:</b>

	<?php echo CHtml::encode($data->titulo); ?>

	<br />


	<b><?php echo CHtml::encode($data->getAttributeLabel('foto')); ?>:</b>

	<?php echo CHtml::encode($data->foto); ?>

	<br />


	<b><?php echo CHtml::encode($data->getAttributeLabel('timemade')); ?>:</b>

	<?php echo CHtml::encode($data->timemade); ?>

	<br />

	

	<div id="<?php echo $description?>" style="display:none;" >

		<b><?php echo CHtml::encode($data->getAttributeLabel('Descripcion')); ?>:</b>

		<?php echo CHtml::encode($data->Descripcion); ?>

		<br />

	</div>

	 


</div>	

</div>


<!-- HTML del modal para mensajes -->

 <div id="modal" style="display:none">

	<div id="ventana" class="contenedor" style="display:none">

		<h4>Enviar mensaje a <?php echo $usuario->nickname; ?></h4> Codigo del mensaje

	<a href="#close" title="Cerrar" onclick="toogle('none','modal','ventana')" >Close</a>

	</div>

 </div>



Esto me lo hace bien, con los datos bien y todo y genero un botón en cada oferta para ponerte en contacto con el usuario que ha echo esa oferta. Al pulsar el botón aparece una subventana modal donde quiero poner: enviar mensaje a "quien sea", y hacer el formulario, pero por alguna razón solo me coge el primer usuario, le de al botón que le de y quiero que al darle al boton recuperar el nombre de ese usuario… y no se como solucionarlo. alguna idea?

gracias !^^

Antes que nada cabe preguntar: Son la misma vista? si son diferentes, desde qué controlador o controladores se están cargando?

Una aclaración:

El modelo $usuario se carga EN el servidor, así que si estando EN el servidor el modelo no tiene datos en el campo, entonces en el campo que muestra al final nunca se cargará, pues toda la información de la vista se carga ANTES de llegar al navegador (espero no haber sido demasiado teórico-técnico y que la aclaración sea pertinente).

Pero para ir a la solución pensaría que hay que hacerlo o por JS o por paso directo de variables (lo que podría contestar luego de conocer la respuesta a las preguntas hechas al principio).

Saludos.

hola robregonm,

gracias por contestar !

Están en vistas diferentes pero al final lo solucione por JS, creo que era por lo que dices del modelo, que se carga antes y demás.

Lo que hice fue guardar en el "value" de cada boton el nombre de cada usuario, y por JS recuperarlo con this en una funcion y modificar el div donde sale el nombre con js y css, dejo aqui el codigo por si a alguien le pueda servir(el css no lo pongo que es mucho):

Codigo del boton




 <div class="mensajeOferta" id="<?php echo $botonOferta ?>" style="display:none;">

		<button value="<?php echo $usuario->nickname; ?>" href="#" id="botonMensajeOferta" style="height:60px;width:65px;" onclick="toogle('block','modal','ventana',this)"> Mensaje a <?php echo $usuario->nickname; ?> </button>

	</div>



codigo html de la ventana modal(en h4 es donde quiero poner el nombre,lo modifico en el js, vacio por defecto)




 <div id="modal" style="display:none">

	<div id="ventana" class="contenedor" style="display:none">

	<h4 id="CabeceraMensaje"> </h4> 

	<div id="ContenidoMensaje">

		<textArea id="textMensajeOferta" style="height:120px;width:495px;" > Contenido del mensaje </textArea> 

		<button href="#" id="botonMensajeOfertaEnvio"> Enviar mensaje </button>

	</div>

	<a href="#close" title="Cerrar" onclick="toogle('none','modal','ventana',this)" >Close</a>

	</div>

 </div>



codigo js




function toogle(a,b,c,elemento)

	{

		nombre=elemento.value;

		document.getElementById("CabeceraMensaje").innerHTML = "Enviar mensaje a " + nombre;

		

		document.getElementById(<img src='http://www.yiiframework.com/forum/public/style_emoticons/default/cool.gif' class='bbc_emoticon' alt='B)' />.style.display=a;

		document.getElementById(c).style.display=a;


	}



gracias y un saludo ^^

Súper, también gracias por el código, a algún desarrollador le puede ser útil más adelante (para eso son los foros :) )

Saludos.