Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/08/2013, 16:49
Avatar de zeuzft
zeuzft
 
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Exclamación como hacer combo en cakephp??

que tal, tengo problemas con definir un combo dependiente en cakephp; el problema quizas sea que todo es de una misma tabla, es decir, primero debe de elegir el periodo, una vez filtrado por periodo, debe seleccionar la region, una vez filtrado por periodo y region debe e seleccionar el nombre del rio, y cuando tenga los 3, debe poder hacer click para pasar al siguiente formulario.
este es mi controller clients_controller:
Código PHP:
function riosini(){
        
$this->layout 'main';
        
$module 'Mrios';
        
$this->loadModel('Mrio');
        
        
$mrios3 $this->Mrio->find('all',array('fields' => array('Mrio.periodo'),'group' => array('Mrio.periodo')));
        
$this->set('mrios3'$mrios3 );
        
        
$module = isset($this->params['named']['module'])?$this->params['named']['module']:null;
        if (!
$module$this->redirect('index');
        
        
$periodo $this->Mrio->find('all',array('fields' => array('Mrio.periodo'),'group' => array('Mrio.periodo')));
        
        
$pers $this->Mrio->find('all',array('fields'=>'Mrio.periodo''group'=>array('Mrio.periodo')));
        foreach (
$pers as $peri) {
        
$per[$peri['Mrio']['periodo']]= $peri['Mrio']['periodo'];
        }
        
$this->set('per',$per);
        
        
$this->set('periodo'$periodo);
        
$this->set('per'$per); //periodo en combo
        
$this->set('location'null); //region en combo
        
$this->set('nombre'null); //rio en combo
        
$this->set('module'$module);
    } 
este es mi view riosini.ctp:
Código HTML:
<?php
				echo $form->create('Propiedad',array('action'=>'clients'));
			?>
			<table class="selectortable">
				<tr>
					<td>
						Periodo
						 <?php
								//pr($per);
						
							echo $form->input('periodo',array('label'=>false,'empty'=>array('0'=>'Selecciona el periodo'),'type'=>'select','onClick'=>'ajax_provincias(this.form)','options'=>$per));

						 ?> 
					</td>
				</tr>
				<tr>
					<td>
						Region
							<div id='comboprovincias'>
								<?php
									echo $form->input('region',array('label'=>false,'empty'=>array('0'=>'Selecciona la region'),'type'=>'select','onClick'=>'ajax_provincias(this.form)','options'=>$location));
								?>
							</div>
					</td>
				</tr><tr>
					<td>
						Rios
					</td>
				</tr>
			</table>
			<?php echo $form->end(); ?>
ese view es una forma, la otra idea que se me ocurrio es mandar el valor a la misma pagina, pero no logro dar con el evento:
Código HTML:
echo $form->input('periodo',array('label'=>false,'empty'=>array('0'=>'Selecciona el periodo'),'type'=>'select','options'=>$per,'onchange'=>$html->link($per,array('controller'=>'clients','action'=>'riosini','periodo:' . 'this.form', 'module:' . $module))));