[Yii 1] Valorizzare più TextField su DropDownList onChange

Salve a tutti,

seguo da un po il vostro forum per un piccolo progettino che ho dovuto realizzare…

Sono partito praticamente da zero. Mai usato php, javascript, ajax ecc… vengo da un altro mondo.

Grazie a yii e al vostro aiuto sono riuscito a realizzare quello che volevo!

Ma ora ho un problema… sto cercando la soluzione in giro da giorni, la scadenza si avvicina…quindi vi chiedo aiuto!

Ho la necessità di popolare di valorizzare tre textfield in una form:

  • Tariffa piena

  • Tariffa ridotta

  • Tariffa minima

ad ogni change del DropDownList tramite il quale l’utente seleziona lo spettacolo che vuole prenotare.

Ho utilizzato il parametro ‘success’ ma riesco a valorizzare solo un textfield in quanto la variabile ‘data’ che mi viene restituita dalla funzione del controller che ho creato ad Hoc mi permette di riportare un solo valore (tramite echo).

Mi sapreste dire qual’è il modo più giusto per approcciare il problema? non so più che pesci pigliare!

in breve:

Come riempireste i tre textfield ogni volta che cambia il valore del dropdown?

Non so come ringraziarvi!

cosa fai nel "success" ?

io farei una cosa tipo :

"success" => "function(data){

console.log(data); // vediamo quello che arriva

$(’#tariffa_piena’).val(data);

$(’#tariffa_ridotta’).val(data);

$(’#tariffa_minima’).val(data);

}

:)

è quello che pensavo… ma "data" è un valore unico… o no? cioè quello che restituisco come "echo" dalla function.

invece quelli sono valori che devo recuperare con una query da DB e sono chiaramente tre valori diversi.

C’è qualche errore di fondo ?

Non sono riuscito a capire come farsi restituire un array dalla function, ad esempio.

Tipo :




array( 'Tariffa' => '8',

'Tariffaridotta' => '5',

'Tariffamin' => '3')



Appena posso posto il codice in modo che possiate darmi un aiuto in maniera più agevole

My model : prenotazione.php


   

<?php

/* @var $this PrenotazioneController */

/* @var $model Prenotazione */

/* @var $form CActiveForm */

?>


<div class="form">


        <?php $form=$this->beginWidget('CActiveForm', array(

                'id'=>'prenotazione-form',

                // Please note: When you enable ajax validation, make sure the corresponding

                // controller action is handling ajax validation correctly.

                // There is a call to performAjaxValidation() commented in generated controller code.

                // See class documentation of CActiveForm for details on this.

                'enableAjaxValidation'=>false,

        )); ?>

        

        <!-- Creazione oggetti relativi al socio ed evento selezionati-->

        <?php $idsociovar = Yii::app()->request->getQuery('idsocio'); ?>

   

        <?php  $soci= Soci::model()->findByPk($idsociovar); ?>

        <?php  $eventi= Eventi::model()->findByPk(Yii::app()->request->getQuery('IdEvento')); ?>

        <?php  $ultime=  Yii::app()->db->createCommand('SELECT * FROM ultime_visite_sel where idsocio=(' . $idsociovar . ')')->queryScalar(); ?>


        

    <div class="boxtitle">

		<?php echo $form->HiddenField($model,'Idsocio',array('value'=>$idsociovar)); ?>

            <H1 align="center">Prenotazione </h1> 

            <h2 align="center"> <?php echo $soci->Nome; ?> <?php echo $soci->Cognome; ?> nato/a a <?php echo $soci->ComuneNascita; ?> il <?php echo $soci->DataNascita; ?>  

            </H2>            

                    <?php //echo $model->IdEvento; ?>

    </div> 

        <Div class="boxtitle">     

            <h3>Riepilogo ultime attività del socio</h3>  

    <?php 

    $ultimevisite = new CActiveDataProvider('UltimeVisiteSel', array('criteria'=>array(

                                                                     'condition' => 'idsocio = ' . $idsociovar,

                                                                     'order' => 'DataEventoInizio desc'

                                                                     ),

                                                                         'pagination'=>array(

                                                                         'pageSize'=>20,

                                                                         ),

                                                                    ));

 

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

        'id'=>'stations-grid',

        'dataProvider'=> $ultimevisite,//$UltimeVisiteSel->FindAll(),

        //'filter'=>UltimeVisiteSel::model(),

        'template'=>'{items}',

        'summaryText' => 'Elenco delle ultime {count} attività a cui ha partecipato',

        'columns'=>array(

                'DataEventoInizio',

                'DataEventoFine',

                'TipoVisita',

                'Visita',

                array('name'=>'QtaPrenoAdulti',

                      'htmlOptions'=>array('width'=>'15'),

                ),

                array('name'=>'QtaPrenoRagazzi',

                      'htmlOptions'=>array('width'=>'15'),

                ),

                array('name'=>'QtaPrenoBambini',

                      'htmlOptions'=>array('width'=>'15'),

                ),

                array('name'=>'QtaAdulti',

                      'htmlOptions'=>array('width'=>'15'),

                ),

                array('name'=>'QtaRagazzi',

                      'htmlOptions'=>array('width'=>'15'),

                ),

                array('name'=>'QtaBambini',

                      'htmlOptions'=>array('width'=>'15'),

                ),

            ),));

  ?>

 </Div>

    </br>

    <p class="note">I campi con <span class="required">*</span> sono obbligatori.</p>

	<?php echo $form->errorSummary($model); ?>


        <?php //echo  Fasce::Model()->FindByPk($data->IdVisita)->Visita; ?>

        <?php //echo  TipovisitaFasce::Model()->FindByPk($idevento2->IdTipoVisita)->QuotaAdulti; ?>

        <?php //echo  TipovisitaFasce::Model()->FindByPk(Eventivisite.IdTipoSocio)->QuotaAdulti; ?>


    <table>

        <tr >

            <th  colspan="5" style="text-align: right" >

		<?php $aaa=new CActiveDataProvider('Tipovisita');//echo $form->labelEx($model,'IdEvento'); ?>

                Partecipa in qualità di 

                    

                    <?php echo $form->dropDownList($model,'IdTipoSocio', CHtml::listData(tiposocio::model()->findAll(array('order' => 'idtiposocio ASC')), 'IdTipoSocio', 'TipoSocio')); ?>        

                    <?php echo $form->error($model,'IdTipoSocio'); ?>

                    all'evento 

                    <?php 

                        if ($model->isNewRecord){

                            /*echo $form->dropDownList($model,'IdEvento',CHtml::listData(Eventidisponibilisel::model()->findAll(), 'IdEvento', 'DesEvento'),

                            array('onchange'=>"$('#Prenotazione_QuotaAdulti').val('Yii::app()->createUrl(Prenotazione/getTariffaAdulti)');"

                                . "$('#Prenotazione_QuotaRagazzi').val('3');"

                                . "$('#Prenotazione_QuotaBambini').val('3');")

                            ); 

                            */

                            echo $form->dropDownList($model,'IdEvento',CHtml::listData(Eventidisponibilisel::model()->findAll(), 'IdEvento', 'DesEvento'),

                            array('ajax' => array(  'type'=>'POST', 

                                                     'url'=>Yii::app()->createUrl('Prenotazione/GetTariffaAdulti'),

                                                    //'success' => 'function(data) {$("#Prenotazione_QuotaAdulti").val(' . Fasceeventosel::model()->findbyPk("2")->QuotaAdulti . ');      }',

                                                    'success' => 'function(data) {$("#Prenotazione_QuotaAdulti").val(2);      }',

                                                    'data'=>array('total'=>'js:this.value'),

                                )

                            )); 

                            

                        } else

                      {

                          echo  " all'evento <i>" . Visite::model()->findbyPk(Eventi::model()->findbyPk($model->IdEvento)->IdVisita)->Visita . "</i> del <i>" . Eventi::model()->findbyPk($model->IdEvento)->DataEventoInizio . "</i>";

                        }

                            

                    ?>

                    

                    

                    <?php echo $form->error($model,'IdEvento'); ?>

            </th>

        </tr>

        <!--'TipovisitaFasce::model()->findbyPk(2)->QuotaAdulti'   Yii::app()->createUrl('explicacaoController/ajaxRequest');  -->

        <tr>

            <td  colspan="2" style="text-align: right">

		<?php //echo Eventi::model()->findbyPk($model->IdEvento)->IdVisita ?>

		<?php //echo TipovisitaFasce::model()->findbyPk(2)->QuotaAdulti ?>

                <?php echo $form->labelEx($model,'QtaPrenoAdulti'); ?>

            </td>

            <td  style="text-align: right">

                <?php echo $form->numberField($model,'QtaPrenoAdulti',array('min'=>0,'max'=>99,'step'=>1,

                                            'onchange'=>"$('#Prenotazione_Totale').val("

                                            . "((($('#Prenotazione_QtaPrenoAdulti').val()*$('#Prenotazione_QuotaAdulti').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoRagazzi').val()*$('#Prenotazione_QuotaRagazzi').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoBambini').val()*$('#Prenotazione_QuotaBambini').val()))"

                                            . " - $('#Prenotazione_ScontoTot').val()).toFixed(2)"

                                            . ");")); ?>

		<?php echo $form->error($model,'QtaPrenoAdulti'); ?>

            </td>

            <td style="text-align: right">

                <?php echo $form->labelEx($model,'QuotaAdulti'); ?>

            </td>

            <td style="text-align: right">

                <?php echo $form->numberField($model,'QuotaAdulti',array('min'=>0,'max'=>999,'step'=>0.1,

                                            'onchange'=>"$('#Prenotazione_Totale').val("

                                            . "((($('#Prenotazione_QtaPrenoAdulti').val()*$('#Prenotazione_QuotaAdulti').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoRagazzi').val()*$('#Prenotazione_QuotaRagazzi').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoBambini').val()*$('#Prenotazione_QuotaBambini').val()))"

                                            . " - $('#Prenotazione_ScontoTot').val()).toFixed(2)"

                                            . ");"

                    ));?>

                <?php echo $form->error($model,'QuotaAdulti'); ?>

            </td>

        </tr>

        

                

        <tr>

            <td></td>

            <td style="text-align: right">

                <?php echo $form->labelEx($model,'QtaPrenoRagazzi'); ?>

            </td>

            <td style="text-align: right">

                <?php echo $form->numberField($model,'QtaPrenoRagazzi',array('min'=>0,'max'=>99,'step'=>1,

                                            'onchange'=>"$('#Prenotazione_Totale').val("

                                            . "((($('#Prenotazione_QtaPrenoAdulti').val()*$('#Prenotazione_QuotaAdulti').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoRagazzi').val()*$('#Prenotazione_QuotaRagazzi').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoBambini').val()*$('#Prenotazione_QuotaBambini').val()))"

                                            . " - $('#Prenotazione_ScontoTot').val()).toFixed(2)"

                                            . ");")); ?>

		<?php echo $form->error($model,'QtaPrenoRagazzi'); ?>

            </td>

            <td style="text-align: right">

                <?php echo $form->labelEx($model,'QuotaRagazzi'); ?>

            </td>

            <td style="text-align: right">

                <?php echo $form->numberField($model,'QuotaRagazzi',array('min'=>0,'max'=>999,'step'=>0.1,

                                            'onchange'=>"$('#Prenotazione_Totale').val("

                                            . "((($('#Prenotazione_QtaPrenoAdulti').val()*$('#Prenotazione_QuotaAdulti').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoRagazzi').val()*$('#Prenotazione_QuotaRagazzi').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoBambini').val()*$('#Prenotazione_QuotaBambini').val()))"

                                            . " - $('#Prenotazione_ScontoTot').val()).toFixed(2)"

                                            . ");")); ?>

		<?php echo $form->error($model,'QuotaRagazzi'); ?>

            </td>

        </tr>


        <tr>

            <td></td>

            <td style="text-align: right">

                <?php echo $form->labelEx($model,'QtaPrenoBambini'); ?>

            </td>

            <td style="text-align: right">

                <?php echo $form->numberField($model,'QtaPrenoBambini',array('min'=>0,'max'=>99,'step'=>1,

                                            'onchange'=>"$('#Prenotazione_Totale').val("

                                            . "((($('#Prenotazione_QtaPrenoAdulti').val()*$('#Prenotazione_QuotaAdulti').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoRagazzi').val()*$('#Prenotazione_QuotaRagazzi').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoBambini').val()*$('#Prenotazione_QuotaBambini').val()))"

                                            . " - $('#Prenotazione_ScontoTot').val()).toFixed(2)"

                                            . ");")); ?>

		<?php echo $form->error($model,'QtaPrenoBambini'); ?>

            </td>

            <td style="text-align: right">

                <?php echo $form->labelEx($model,'QuotaBambini'); ?>

            </td>

            <td style="text-align: right">

                <?php echo $form->numberField($model,'QuotaBambini',array('min'=>0,'max'=>999,'step'=>0.1,

                                            'onchange'=>"$('#Prenotazione_Totale').val("

                                            . "((($('#Prenotazione_QtaPrenoAdulti').val()*$('#Prenotazione_QuotaAdulti').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoRagazzi').val()*$('#Prenotazione_QuotaRagazzi').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoBambini').val()*$('#Prenotazione_QuotaBambini').val()))"

                                            . " - $('#Prenotazione_ScontoTot').val()).toFixed(2)"

                                            . ");")); ?>

		<?php echo $form->error($model,'QuotaBambini'); ?>

            </td>

        </tr>


        <tr>

            <td colspan="3" style="text-align: right">

            </td>

            <td style="text-align: right">

                <?php echo $form->labelEx($model,'ScontoTot'); ?>

            </td>

            <td style="text-align: right">

		<?php echo $form->numberField($model,'ScontoTot',array('min'=>-99,'max'=>999,'step'=>0.1,

                                            'onchange'=>"$('#Prenotazione_Totale').val("

                                            . "((($('#Prenotazione_QtaPrenoAdulti').val()*$('#Prenotazione_QuotaAdulti').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoRagazzi').val()*$('#Prenotazione_QuotaRagazzi').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoBambini').val()*$('#Prenotazione_QuotaBambini').val()))"

                                            . " - $('#Prenotazione_ScontoTot').val()).toFixed(2)"

                                            . ");")); ?>

		<?php echo $form->error($model,'ScontoTot'); ?>

            </td>

        </tr>

        <tr>

            <td colspan="3" style="text-align: right">

            </td>

            <td style="text-align: right">

                <h3><i>Totale €</i></h3>

            </td>

            <td style="text-align: right">

		<?php //echo $form->numberField($model,'Totale',array('min'=>-99,'max'=>999,'step'=>0.1)); ?>

                <?php

                        $this->widget('CMaskedTextField', array(

                        'model' => $model,

                        'attribute' => 'Totale',

                        'mask' => '9.999,99',

                        'htmlOptions' => array('size' => 7,'disabled'=>true,'style'=>'italic')

                        ));

                        ?>

            </td>

        </tr>


        <tr>

            <td colspan="2" style="text-align: right">

		<?php echo $form->labelEx($model,'NotaSconto'); ?>

            </td>

            <td colspan="3" style="text-align: right">

                <?php echo $form->textField($model,'NotaSconto',array('size'=>74,'maxlength'=>255)); ?>

                <?php echo $form->error($model,'NotaSconto'); ?>

            </td>

        </tr>


    </table>


    		<?php echo $form->labelEx($model,'Note'); ?>

		<?php echo $form->textArea($model,'Note',array('rows'=>6, 'cols'=>95)); ?>

                <?php echo $form->error($model,'Note'); ?>


        <div class="row">

		<?php //echo $form->labelEx($model,'UtenteInserimento'); ?>

		<?php //echo $form->textField($model,'UtenteInserimento',array('size'=>45,'maxlength'=>45)); ?>

		<?php //echo $form->error($model,'UtenteInserimento'); ?>

	</div>


	<div class="row">

		<?php //echo $form->labelEx($model,'DataInserimento'); ?>

		<?php //echo $form->textField($model,'DataInserimento'); ?>

		<?php //echo $form->error($model,'DataInserimento'); ?>

	</div>


	<div class="row">

		<?php //echo $form->labelEx($model,'UtenteAggiornamento'); ?>

		<?php //echo $form->textField($model,'UtenteAggiornamento',array('size'=>45,'maxlength'=>45)); ?>

		<?php //echo $form->error($model,'UtenteAggiornamento'); ?>

	</div>


	<div class="row">

		<?php //echo $form->labelEx($model,'DataAggiornamento'); ?>

		<?php //echo $form->textField($model,'DataAggiornamento'); ?>

		<?php //echo $form->error($model,'DataAggiornamento'); ?>

	</div>


	<div class="row buttons">

		<?php echo CHtml::submitButton($model->isNewRecord ? 'Conferma Prenotazione' : 'Conferma Modifica'); ?>

	</div>


<?php $this->endWidget(); ?>


</div><!-- form -->



My view:


<?php

/* @var $this PrenotazioneController */

/* @var $model Prenotazione */

/* @var $form CActiveForm */

?>


<div class="form">


        <?php $form=$this->beginWidget('CActiveForm', array(

                'id'=>'prenotazione-form',

                // Please note: When you enable ajax validation, make sure the corresponding

                // controller action is handling ajax validation correctly.

                // There is a call to performAjaxValidation() commented in generated controller code.

                // See class documentation of CActiveForm for details on this.

                'enableAjaxValidation'=>false,

        )); ?>

        

        <!-- Creazione oggetti relativi al socio ed evento selezionati-->

        <?php $idsociovar = Yii::app()->request->getQuery('idsocio'); ?>

   

        <?php  $soci= Soci::model()->findByPk($idsociovar); ?>

        <?php  $eventi= Eventi::model()->findByPk(Yii::app()->request->getQuery('IdEvento')); ?>

        <?php  $ultime=  Yii::app()->db->createCommand('SELECT * FROM ultime_visite_sel where idsocio=(' . $idsociovar . ')')->queryScalar(); ?>


        

    <div class="boxtitle">

		<?php echo $form->HiddenField($model,'Idsocio',array('value'=>$idsociovar)); ?>

            <H1 align="center">Prenotazione </h1> 

            <h2 align="center"> <?php echo $soci->Nome; ?> <?php echo $soci->Cognome; ?> nato/a a <?php echo $soci->ComuneNascita; ?> il <?php echo $soci->DataNascita; ?>  

            </H2>            

                    <?php //echo $model->IdEvento; ?>

    </div> 

        <Div class="boxtitle">     

            <h3>Riepilogo ultime attività del socio</h3>  

    <?php 

    $ultimevisite = new CActiveDataProvider('UltimeVisiteSel', array('criteria'=>array(

                                                                     'condition' => 'idsocio = ' . $idsociovar,

                                                                     'order' => 'DataEventoInizio desc'

                                                                     ),

                                                                         'pagination'=>array(

                                                                         'pageSize'=>20,

                                                                         ),

                                                                    ));

 

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

        'id'=>'stations-grid',

        'dataProvider'=> $ultimevisite,//$UltimeVisiteSel->FindAll(),

        //'filter'=>UltimeVisiteSel::model(),

        'template'=>'{items}',

        'summaryText' => 'Elenco delle ultime {count} attività a cui ha partecipato',

        'columns'=>array(

                'DataEventoInizio',

                'DataEventoFine',

                'TipoVisita',

                'Visita',

                array('name'=>'QtaPrenoAdulti',

                      'htmlOptions'=>array('width'=>'15'),

                ),

                array('name'=>'QtaPrenoRagazzi',

                      'htmlOptions'=>array('width'=>'15'),

                ),

                array('name'=>'QtaPrenoBambini',

                      'htmlOptions'=>array('width'=>'15'),

                ),

                array('name'=>'QtaAdulti',

                      'htmlOptions'=>array('width'=>'15'),

                ),

                array('name'=>'QtaRagazzi',

                      'htmlOptions'=>array('width'=>'15'),

                ),

                array('name'=>'QtaBambini',

                      'htmlOptions'=>array('width'=>'15'),

                ),

            ),));

  ?>

 </Div>

    </br>

    <p class="note">I campi con <span class="required">*</span> sono obbligatori.</p>

	<?php echo $form->errorSummary($model); ?>


        <?php //echo  Fasce::Model()->FindByPk($data->IdVisita)->Visita; ?>

        <?php //echo  TipovisitaFasce::Model()->FindByPk($idevento2->IdTipoVisita)->QuotaAdulti; ?>

        <?php //echo  TipovisitaFasce::Model()->FindByPk(Eventivisite.IdTipoSocio)->QuotaAdulti; ?>


    <table>

        <tr >

            <th  colspan="5" style="text-align: right" >

		<?php $aaa=new CActiveDataProvider('Tipovisita');//echo $form->labelEx($model,'IdEvento'); ?>

                Partecipa in qualità di 

                    

                    <?php echo $form->dropDownList($model,'IdTipoSocio', CHtml::listData(tiposocio::model()->findAll(array('order' => 'idtiposocio ASC')), 'IdTipoSocio', 'TipoSocio')); ?>        

                    <?php echo $form->error($model,'IdTipoSocio'); ?>

                    all'evento 

                    <?php 

                        if ($model->isNewRecord){

                            /*echo $form->dropDownList($model,'IdEvento',CHtml::listData(Eventidisponibilisel::model()->findAll(), 'IdEvento', 'DesEvento'),

                            array('onchange'=>"$('#Prenotazione_QuotaAdulti').val('Yii::app()->createUrl(Prenotazione/getTariffaAdulti)');"

                                . "$('#Prenotazione_QuotaRagazzi').val('3');"

                                . "$('#Prenotazione_QuotaBambini').val('3');")

                            ); 

                            */

                            echo $form->dropDownList($model,'IdEvento',CHtml::listData(Eventidisponibilisel::model()->findAll(), 'IdEvento', 'DesEvento'),

                            array('ajax' => array(  'type'=>'POST', 

                                                     'url'=>Yii::app()->createUrl('Prenotazione/GetTariffaAdulti'),

                                                    //'success' => 'function(data) {$("#Prenotazione_QuotaAdulti").val(' . Fasceeventosel::model()->findbyPk("2")->QuotaAdulti . ');      }',

                                                    'success' => 'function(data) {$("#Prenotazione_QuotaAdulti").val(2);      }',

                                                    'data'=>array('total'=>'js:this.value'),

                                )

                            )); 

                            

                        } else

                      {

                          echo  " all'evento <i>" . Visite::model()->findbyPk(Eventi::model()->findbyPk($model->IdEvento)->IdVisita)->Visita . "</i> del <i>" . Eventi::model()->findbyPk($model->IdEvento)->DataEventoInizio . "</i>";

                        }

                            

                    ?>

                    

                    

                    <?php echo $form->error($model,'IdEvento'); ?>

            </th>

        </tr>

        <!--'TipovisitaFasce::model()->findbyPk(2)->QuotaAdulti'   Yii::app()->createUrl('explicacaoController/ajaxRequest');  -->

        <tr>

            <td  colspan="2" style="text-align: right">

		<?php //echo Eventi::model()->findbyPk($model->IdEvento)->IdVisita ?>

		<?php //echo TipovisitaFasce::model()->findbyPk(2)->QuotaAdulti ?>

                <?php echo $form->labelEx($model,'QtaPrenoAdulti'); ?>

            </td>

            <td  style="text-align: right">

                <?php echo $form->numberField($model,'QtaPrenoAdulti',array('min'=>0,'max'=>99,'step'=>1,

                                            'onchange'=>"$('#Prenotazione_Totale').val("

                                            . "((($('#Prenotazione_QtaPrenoAdulti').val()*$('#Prenotazione_QuotaAdulti').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoRagazzi').val()*$('#Prenotazione_QuotaRagazzi').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoBambini').val()*$('#Prenotazione_QuotaBambini').val()))"

                                            . " - $('#Prenotazione_ScontoTot').val()).toFixed(2)"

                                            . ");")); ?>

		<?php echo $form->error($model,'QtaPrenoAdulti'); ?>

            </td>

            <td style="text-align: right">

                <?php echo $form->labelEx($model,'QuotaAdulti'); ?>

            </td>

            <td style="text-align: right">

                <?php echo $form->numberField($model,'QuotaAdulti',array('min'=>0,'max'=>999,'step'=>0.1,

                                            'onchange'=>"$('#Prenotazione_Totale').val("

                                            . "((($('#Prenotazione_QtaPrenoAdulti').val()*$('#Prenotazione_QuotaAdulti').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoRagazzi').val()*$('#Prenotazione_QuotaRagazzi').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoBambini').val()*$('#Prenotazione_QuotaBambini').val()))"

                                            . " - $('#Prenotazione_ScontoTot').val()).toFixed(2)"

                                            . ");"

                    ));?>

                <?php echo $form->error($model,'QuotaAdulti'); ?>

            </td>

        </tr>

        

                

        <tr>

            <td></td>

            <td style="text-align: right">

                <?php echo $form->labelEx($model,'QtaPrenoRagazzi'); ?>

            </td>

            <td style="text-align: right">

                <?php echo $form->numberField($model,'QtaPrenoRagazzi',array('min'=>0,'max'=>99,'step'=>1,

                                            'onchange'=>"$('#Prenotazione_Totale').val("

                                            . "((($('#Prenotazione_QtaPrenoAdulti').val()*$('#Prenotazione_QuotaAdulti').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoRagazzi').val()*$('#Prenotazione_QuotaRagazzi').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoBambini').val()*$('#Prenotazione_QuotaBambini').val()))"

                                            . " - $('#Prenotazione_ScontoTot').val()).toFixed(2)"

                                            . ");")); ?>

		<?php echo $form->error($model,'QtaPrenoRagazzi'); ?>

            </td>

            <td style="text-align: right">

                <?php echo $form->labelEx($model,'QuotaRagazzi'); ?>

            </td>

            <td style="text-align: right">

                <?php echo $form->numberField($model,'QuotaRagazzi',array('min'=>0,'max'=>999,'step'=>0.1,

                                            'onchange'=>"$('#Prenotazione_Totale').val("

                                            . "((($('#Prenotazione_QtaPrenoAdulti').val()*$('#Prenotazione_QuotaAdulti').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoRagazzi').val()*$('#Prenotazione_QuotaRagazzi').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoBambini').val()*$('#Prenotazione_QuotaBambini').val()))"

                                            . " - $('#Prenotazione_ScontoTot').val()).toFixed(2)"

                                            . ");")); ?>

		<?php echo $form->error($model,'QuotaRagazzi'); ?>

            </td>

        </tr>


        <tr>

            <td></td>

            <td style="text-align: right">

                <?php echo $form->labelEx($model,'QtaPrenoBambini'); ?>

            </td>

            <td style="text-align: right">

                <?php echo $form->numberField($model,'QtaPrenoBambini',array('min'=>0,'max'=>99,'step'=>1,

                                            'onchange'=>"$('#Prenotazione_Totale').val("

                                            . "((($('#Prenotazione_QtaPrenoAdulti').val()*$('#Prenotazione_QuotaAdulti').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoRagazzi').val()*$('#Prenotazione_QuotaRagazzi').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoBambini').val()*$('#Prenotazione_QuotaBambini').val()))"

                                            . " - $('#Prenotazione_ScontoTot').val()).toFixed(2)"

                                            . ");")); ?>

		<?php echo $form->error($model,'QtaPrenoBambini'); ?>

            </td>

            <td style="text-align: right">

                <?php echo $form->labelEx($model,'QuotaBambini'); ?>

            </td>

            <td style="text-align: right">

                <?php echo $form->numberField($model,'QuotaBambini',array('min'=>0,'max'=>999,'step'=>0.1,

                                            'onchange'=>"$('#Prenotazione_Totale').val("

                                            . "((($('#Prenotazione_QtaPrenoAdulti').val()*$('#Prenotazione_QuotaAdulti').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoRagazzi').val()*$('#Prenotazione_QuotaRagazzi').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoBambini').val()*$('#Prenotazione_QuotaBambini').val()))"

                                            . " - $('#Prenotazione_ScontoTot').val()).toFixed(2)"

                                            . ");")); ?>

		<?php echo $form->error($model,'QuotaBambini'); ?>

            </td>

        </tr>


        <tr>

            <td colspan="3" style="text-align: right">

            </td>

            <td style="text-align: right">

                <?php echo $form->labelEx($model,'ScontoTot'); ?>

            </td>

            <td style="text-align: right">

		<?php echo $form->numberField($model,'ScontoTot',array('min'=>-99,'max'=>999,'step'=>0.1,

                                            'onchange'=>"$('#Prenotazione_Totale').val("

                                            . "((($('#Prenotazione_QtaPrenoAdulti').val()*$('#Prenotazione_QuotaAdulti').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoRagazzi').val()*$('#Prenotazione_QuotaRagazzi').val())"

                                            . " + "

                                            . "($('#Prenotazione_QtaPrenoBambini').val()*$('#Prenotazione_QuotaBambini').val()))"

                                            . " - $('#Prenotazione_ScontoTot').val()).toFixed(2)"

                                            . ");")); ?>

		<?php echo $form->error($model,'ScontoTot'); ?>

            </td>

        </tr>

        <tr>

            <td colspan="3" style="text-align: right">

            </td>

            <td style="text-align: right">

                <h3><i>Totale €</i></h3>

            </td>

            <td style="text-align: right">

		<?php //echo $form->numberField($model,'Totale',array('min'=>-99,'max'=>999,'step'=>0.1)); ?>

                <?php

                        $this->widget('CMaskedTextField', array(

                        'model' => $model,

                        'attribute' => 'Totale',

                        'mask' => '9.999,99',

                        'htmlOptions' => array('size' => 7,'disabled'=>true,'style'=>'italic')

                        ));

                        ?>

            </td>

        </tr>


        <tr>

            <td colspan="2" style="text-align: right">

		<?php echo $form->labelEx($model,'NotaSconto'); ?>

            </td>

            <td colspan="3" style="text-align: right">

                <?php echo $form->textField($model,'NotaSconto',array('size'=>74,'maxlength'=>255)); ?>

                <?php echo $form->error($model,'NotaSconto'); ?>

            </td>

        </tr>


    </table>


    		<?php echo $form->labelEx($model,'Note'); ?>

		<?php echo $form->textArea($model,'Note',array('rows'=>6, 'cols'=>95)); ?>

                <?php echo $form->error($model,'Note'); ?>


        <div class="row">

		<?php //echo $form->labelEx($model,'UtenteInserimento'); ?>

		<?php //echo $form->textField($model,'UtenteInserimento',array('size'=>45,'maxlength'=>45)); ?>

		<?php //echo $form->error($model,'UtenteInserimento'); ?>

	</div>


	<div class="row">

		<?php //echo $form->labelEx($model,'DataInserimento'); ?>

		<?php //echo $form->textField($model,'DataInserimento'); ?>

		<?php //echo $form->error($model,'DataInserimento'); ?>

	</div>


	<div class="row">

		<?php //echo $form->labelEx($model,'UtenteAggiornamento'); ?>

		<?php //echo $form->textField($model,'UtenteAggiornamento',array('size'=>45,'maxlength'=>45)); ?>

		<?php //echo $form->error($model,'UtenteAggiornamento'); ?>

	</div>


	<div class="row">

		<?php //echo $form->labelEx($model,'DataAggiornamento'); ?>

		<?php //echo $form->textField($model,'DataAggiornamento'); ?>

		<?php //echo $form->error($model,'DataAggiornamento'); ?>

	</div>


	<div class="row buttons">

		<?php echo CHtml::submitButton($model->isNewRecord ? 'Conferma Prenotazione' : 'Conferma Modifica'); ?>

	</div>


<?php $this->endWidget(); ?>


</div><!-- form -->

Ad ogni change del dropdownlist IdEvento dovrei valorizzare con i relativi valori pescati dal database i textfield QuotaAdulti,QuotaRagazzi e QuotaBambini…

p.s.

Non mi cazziate troppo…so che il modo con cui faccio i calcoli per il totale su ogni onchange è terribile! :-X