Nicolas400
(Nicolas Machado)
1
Hi, I cannot resolve this.
I have an Action that render a view with a Combo and a Grid.
The grid should be populated when the user pick something from the combo.
I sure I have to use “onChange” event, but I don’t figure ir out.
this is my widget:
<?php echo $form->dropDownList($model->model, 'fk_alumno_id',
GxHtml::listDataEx(Alumno::model()->findAllAttributes(null, true, $crit)),
array(
'onChange' => 'submit',
'prompt' => Yii::t('app', 'Seleccione un Alumno'),
)); ?>
What I whant is that when the combo fires onChange, the form should be re submited with a id of the combo as paremeter, in this case: fk_alumno_id
Any sugestions ??
Best Regards
jacmoe
(Jacob Moen)
2
I use this:
http://www.yiiframework.com/extension/dropdownredirect
I then handle the parameter in my controller.
jacmoe
(Jacob Moen)
3
You could also use a simple form, like this:
<?php echo CHtml::form('issues','get', array('class' => 'floatrightup')); ?>
<?php echo CHtml::dropDownList('issueFilter',
isset($_GET['issueFilter'])?(int)$_GET['issueFilter']:1,
$issueFilter,
array('empty'=>'All Issues', 'submit'=>'')); ?>
<?php echo CHtml::endForm(); ?>
I have both the form and the dropdownredirect active on the same page, though you only need one for your use case.
Nicolas400
(Nicolas Machado)
4
ok, I’m having progess with your suggest. I see this jS function in the page:
$('body').on('change','#Alumno_id',function(){jQuery.yii.submitForm(this,'',{});return false;});
What I need is to pass the selected value as a parameter to the submit …
we are close ?
Regards
PS, I’m not using the redirect extension … yet
jacmoe
(Jacob Moen)
5
I don’t do anything besides the form in the view.
The rest is handled in the model by its search function:
if (isset($_GET['issueFilter'])) {
if((int)$_GET['issueFilter']===1) {
$criteria->compare('t.closed', 0, true);
}
elseif((int)$_GET['issueFilter']===2) {
$criteria->compare('t.closed', 1, true);
}
} else {
$criteria->compare('t.closed', 0, true);
}
jacmoe
(Jacob Moen)
6
Well, in the actionIndex:
public function actionIndex($identifier = '') {
$issueFilter = array('1' => 'Open Issues', '2' => 'Closed Issues');
$model = new Issue('search');
$model->unsetAttributes(); // clear any default values
That’s it.
Nicolas400
(Nicolas Machado)
7
well, this is enough for your case,
but what happends when the combo is filled with 100 records from the database !
I guess that I need to set some parameters in this function:
$(‘body’).on(‘change’,’#Alumno_id’,function(){jQuery.yii.submitForm(this,’’,{});return false;}
where : jQuery.yii.submitForm(this,’’,{}), the second parameter looks like the URL parameters.
So I need som function to retrieve the value of the selected option.
Best Regards