Symfony - Select en symfony

 
Vista:

Select en symfony

Publicado por Filiberto (1 intervención) el 01/07/2012 02:46:51
Buenas,
Estoy trabajando con symfony 1.4 para mi tesis y se me presentado un problema qe ya llevo varias semanas y no se como resolverlo, esta es la cuestión:

Yo tengo en mi aplicación frontend un módulo que se llama sfgTreeEncuentro en este módulo yo creo un árbol que tiene la siguiente jerarquía:
Facultades ( Nombre de una facultad de una universidad)
Tipos de Cursos (si son diurnos o si son regulares)
Carrera (Carrera que se estudia en esa facultad)
Años (los años de 1ro a 5to)
Asignaturas (Las asignaturas que están asociadas a esos años)

En estas asignaturas yo tengo un link que me envia hacia el formulario Gestionar encuentros
que posee los campos
Tipo de Actividad Docente (conferencia, clase práctica..etc)
Tengo las horas clases de duracion de los encuentros
La semana preliminar que se dan dichos encuentros
Y La Asignatura (estas las tengo en un select)

el problema es que cuando yo hago click en el árbol de arriba (el jerárquico) yo cojo el id de dicha asignatura y dosifico la asignatura que es lo que se me muestra en el select del formulario, pero el problema es que el no me muestra en el select la asignatura escogida en el árbol, es decir el lo que me muestra es todas las asignaturas dosificadas y lo que quiero es que muestre esa asignatura que yo pincho el árbol
Yo para este formulario lo genero del doctrine

El código es este
El árbol jerárquico:

<div id="main">
<div id="sidetree">
<div class="treeheader">&nbsp;</div>
<div id="sidetreecontrol">
<a href="?#">Contraer Todo</a> | <a href="?#">Expandir Todo</a></div>
<br/>
<h2>Universidad de Holgu&iacute;n</h2>
<ul id="tree">
<?php foreach ($tb_facultades as $tb_facultad):?>
<li style="cursor: pointer;">
<?php
if ($tb_facultad!=null)
echo $tb_facultad->getDescripcion();
?>
<ul>
<?php foreach (TbFacultadTable::TipoCurso($tb_facultad->getIdFacultad()) as $tb_tipocurso):?>
<li>
<?php echo $tb_tipocurso->getDescripcion();?>
<ul>
<?php foreach ($tb_facultad->mgetCarreraFacultad() as $tb_carrera):?>
<?php if ($tb_carrera->getIdTipocurso() == $tb_tipocurso->getIdTipocurso()){ ?>
<li>
<?php echo $tb_carrera->getDescripcion(); ?>

<ul>
<?php $annos = array('1'=>'1', '2'=>'2', '3'=>'3', '4'=>'4', '5'=>'5') ?>
<?php foreach ($annos as $anno):?>

<li>
<?php echo $anno;?>
<ul>
<?php
foreach (TbAsignaturaTable::mgetNombreAsignatura($anno, $tb_carrera->getIdCarrera()) as $asig):?>
<li>
<a href="<?php echo url_for('sfgEncuentro/index?id_asignatura='.$asig->getIdAsignatura())?>">
<?php echo $asig->getNombre()?>
</a>
<?php endforeach;?>
</ul>
</li>

<?php endforeach;?>
</ul>
</li>
<?php } ?>
<?php endforeach;?>
</ul>
</li>
<?php endforeach;?>
</ul>
</li>
<?php endforeach;?>
</ul>
</div>
</div>

En el action de encuentros capturo el id de la asignatura así:
$id_asignatura = $request->getParameter('id_asignatura');
$this->form = new TbEncuentroForm();
$this->tb_asignaturas = Doctrine_Core::getTable('TbAsignatura')
->find($id_asignatura);
$this->id_asignatura = $id_asignatura;

El formulario generado en doctrine es este (es el formulario):

<form action="<?php echo url_for('sfgEncuentro/'.($form->getObject()->isNew() ? 'create' : 'update').(!$form->getObject()->isNew() ? '?id_encuentro='.$form->getObject()->getIdEncuentro() : '')) ?>" method="post" <?php $form->isMultipart() and print 'enctype="multipart/form-data" ' ?>>
<?php if (!$form->getObject()->isNew()): ?>
<input type="hidden" name="sf_method" value="put" />
<?php endif; ?>
<table>
<tfoot>
<tr>
<td colspan="2">
<?php echo $form->renderHiddenFields(false) ?>
&nbsp;<a href="<?php echo url_for('sfgTreeEncuentro/index') ?>">Volver</a>
<?php if (!$form->getObject()->isNew()): ?>
&nbsp;<?php //echo link_to('Delete', 'sfgEncuentro/delete?id_encuentro='.$form->getObject()->getIdEncuentro(), array('method' => 'delete', 'confirm' => 'Are you sure?')) ?>
<?php endif; ?>
<input type="submit" value="Agregar" class="button" style="width: 80px; height: 30px; padding: 0 10px 0 10px;"/>
</td>
</tr>
</tfoot>
<tbody>
<?php echo $form->renderGlobalErrors() ?>
<tr>
<td><?php echo $form['id_tipo_actividad_docente']->renderLabel() ?></td>
<td>
<?php echo $form['id_tipo_actividad_docente']->renderError() ?>
<?php echo $form['id_tipo_actividad_docente'] ?>
</td>
</tr>
<tr>
<td><?php echo $form['cant_horas']->renderLabel() ?>
<?php echo $form['cant_horas']->renderError() ?>
<?php echo $form['cant_horas'] ?>
</td>
<td>
<?php echo $form['semana_preliminar']->renderLabel() ?>
<?php echo $form['semana_preliminar']->renderError() ?>
<?php echo $form['semana_preliminar'] ?>
</td>
<tr>
<td><?php echo $form['id_dosificacion']->renderLabel() ?></td>
<td>
<?php echo $form['id_dosificacion']->renderError() ?>
<?php echo $form['id_dosificacion'];
//echo '('.$sf_params->get('id_asignatura').')'; // con esto me muestra el id de la asignatura qe yo hice click en el arbol
?>
</td>
</tr>
</tbody>
</table>
</form>

La pregunta es como hacer para que cuando yo haga el click en el árbol el me muestre esa asignatura seleccionada en el select, es decir que me la muestre en el formulario porque si no tengo que cada vez que quiera entrar en un encuentro tengo que en el select buscar la asignatura

si no entendieran lo que quise decir o preguntar pueden escribirme para ser mas preciso
Saludos y si pueden ayudarme se los estaría agradeciendo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder