Combos de Recargables Dependientes

De CidesaWiki

(Diferencias entre revisiones)
Saltar a navegación, buscar
Línea 9: Línea 9:
<?php endif; ?> <?php echo select_tag('ocdatste[codpai]', options_for_select($pais,'001'),array('onChange'=> remote_function(array(
<?php endif; ?> <?php echo select_tag('ocdatste[codpai]', options_for_select($pais,'001'),array('onChange'=> remote_function(array(
'update'  => 'divEstados',//*****Div a Actualizar*******
'update'  => 'divEstados',//*****Div a Actualizar*******
-
'url'      => 'oycdatsol/combo?par=1',//*****Variable para el control de la accion*******
+
'url'      => 'oycdatsol/combo?par=1',//*****Variable para el control de la accion******* (1)
'with' => "'pais='+this.value"//*****Valor de la variale de la caja de texto
'with' => "'pais='+this.value"//*****Valor de la variale de la caja de texto
   ))));?>
   ))));?>
Línea 25: Línea 25:
<?php echo select_tag('ocdatste[codedo]', options_for_select($estados,'001'),array('onChange'=> remote_function(array(
<?php echo select_tag('ocdatste[codedo]', options_for_select($estados,'001'),array('onChange'=> remote_function(array(
'update'  => 'divMunicipios',//*****Div a Actualizar*******
'update'  => 'divMunicipios',//*****Div a Actualizar*******
-
'url'      => 'oycdatsol/combo?par=2',//*****Variable para el control de la accion*******
+
'url'      => 'oycdatsol/combo?par=2',//*****Variable para el control de la accion******* (1)
'with' => "'pais='+document.getElementById('ocdatste_codpai').value+'&estado='+this.value"//*****Valor de la variale de la caja de texto
'with' => "'pais='+document.getElementById('ocdatste_codpai').value+'&estado='+this.value"//*****Valor de la variale de la caja de texto
   ))));?></div>
   ))));?></div>
Línea 56: Línea 56:
   ))));
   ))));
}
}
 +
 +
</pre>
 +
 +
Cabe destacar que lo mismos numero de combos que tenga el edit form lo debe tener el comboSuccess.php, despues agregamos lo siguiente en el action.class, esta funcion controla que se va a ejecutar con la variable de el control de la accion vea (1)
 +
 +
<pre>
 +
 +
public function executeCombo()
 +
{
 +
if ($this->getRequestParameter('par')=='1')
 +
{
 +
$this->estados = $this->Cargarestados($this->getRequestParameter('pais'));
 +
$this->tipo='P';
 +
}
 +
elseif ($this->getRequestParameter('par')=='2')
 +
{
 +
$this->municipio = $this->Cargarmunicipio($this->getRequestParameter('pais'),$this->getRequestParameter('estado'));
 +
$this->tipo='E';
 +
}
 +
}
</pre>
</pre>

Revisión de 14:49 30 abr 2007

Colocar esto en el form edit donde valla cada combo, donde pais es el padre y estado es el hijo


<?php echo label_for('ocdatste[codpai]', __($labels['ocdatste{codpai}']), 'class="required" ') ?>
<div
	class="content<?php if ($sf_request->hasError('ocdatste{codpai}')): ?> form-error<?php endif; ?>">
<?php if ($sf_request->hasError('ocdatste{codpai}')): ?><?php echo form_error('ocdatste{codpai}', array('class' => 'form-error-msg')) ?>
<?php endif; ?> <?php echo select_tag('ocdatste[codpai]', options_for_select($pais,'001'),array('onChange'=> remote_function(array(
		'update'   => 'divEstados',//*****Div a Actualizar*******
		'url'      => 'oycdatsol/combo?par=1',//*****Variable para el control de la accion******* (1)
		'with' => "'pais='+this.value"//*****Valor de la variale de la caja de texto
  ))));?>
</div>

<br>

<?php echo label_for('ocdatste[codedo]', __($labels['ocdatste{codedo}']), 'class="required" ') ?>

<div class="content<?php if ($sf_request->hasError('ocdatste{codedo}')): ?> form-error<?php endif; ?>">
<?php if ($sf_request->hasError('ocdatste{codedo}')): ?> <?php echo form_error('ocdatste{codedo}', array('class' => 'form-error-msg')) ?>
<?php endif; ?>

<div id="divEstados">
<?php echo select_tag('ocdatste[codedo]', options_for_select($estados,'001'),array('onChange'=> remote_function(array(
		'update'   => 'divMunicipios',//*****Div a Actualizar*******
		'url'      => 'oycdatsol/combo?par=2',//*****Variable para el control de la accion******* (1)
		'with' => "'pais='+document.getElementById('ocdatste_codpai').value+'&estado='+this.value"//*****Valor de la variale de la caja de texto
  ))));?></div>
</div>



creamos un archivo llamado comboSuccess.php donde vamos a colocar lo siguiente:


<?php use_helper('Object', 'Validation', 'Javascript') ?>

<?php if ($tipo=='P')
{
 echo select_tag('ocdatste[codedo]', options_for_select($estados,'001'),array('onChange'=> remote_function(array(
'update'   => 'divMunicipios',
'url'      => 'oycdatsol/combo?par=2',
'with' => "'pais='+document.getElementById('ocdatste_codpai').value+'&estado='+this.value"
  ))));
}
else if ($tipo=='E')
{
	echo select_tag('ocdatste[codmun]', options_for_select($municipio,'001'),array('onChange'=> remote_function(array(
	'update'   => 'divParroquia',
	'url'      => 'oycdatsol/combo?par=3',
	'with' => "'pais='+document.getElementById('ocdatste_codpai').value+'&estado='+document.getElementById('ocdatste_codedo').value+'&municipio='+this.value"
  ))));
}

Cabe destacar que lo mismos numero de combos que tenga el edit form lo debe tener el comboSuccess.php, despues agregamos lo siguiente en el action.class, esta funcion controla que se va a ejecutar con la variable de el control de la accion vea (1)


	public function executeCombo()
	{
		if ($this->getRequestParameter('par')=='1')
		{
			$this->estados = $this->Cargarestados($this->getRequestParameter('pais'));
			$this->tipo='P';
		}
		elseif ($this->getRequestParameter('par')=='2')
		{
			$this->municipio = $this->Cargarmunicipio($this->getRequestParameter('pais'),$this->getRequestParameter('estado'));
			$this->tipo='E';
		}
	}

Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas