[Yii 1][Risolto]Aiuto Con Validazione

Salve,

ho una vista nella quale ho inserito, oltre al resto, un normale form html che usa uno javascript per un calcolo.

Quando faccio click sul bottone “Il Cliente ha Pagato” che dovrebbe eseguirmi l’ azione che ho nel controller non succede nulla.

Il form mi serve solo per visualizzare il calcolo, non devo inserire nulla nel database visto che l’ azione poi elimina tutti i record.

Se tolgo il java invece funziona, ma ovviamente non riesco a fare qual calcolo che mi serve.

Qualcuno può aiutarmi ??? :( :( sono disperato!!!!

Vista cassa




<?php




$this->menu=array(

	array('label'=>'Continua a Postalizzare', 'url'=>array('SessioneCassa')),

	array('label'=>'Altra Operazione', 'url'=>array('#')),


);

?>




<div class="table_box">

<table class="table" style="width: 90%; margin: auto;">

	<tbody>

		<tr>

			<td colspan=3 class="table_info_header table_first_lr">Sessione Utente</td>

		</tr>

		<tr class="table_data_header">

			<td class="table_data_l"><b>Cliente</b></td>

			<td class="table_data"><b>Codice Sessione</b></td>

			<td class="table_data_r"><b>N. Operazioni</b></td>

		</tr>

         <tr id="table_data_content">

						<td style="border-left:3px solid #2da4dd;"> 

                         <?php 

						 //$sessioneutente=Sessione::model()->findAll('id = 1');

						 foreach ($sessione as $sess){

						echo $sess->nome_mitt. '  ' .$sess->cognome_mitt. ' <br> ' ;

						}?> 

                        </td>

		

						<td class="table_data">

                        <?php echo $sess->sessione. '' ; ?>

                        </td>

                       

						<td style="border-right:3px solid #2da4dd;">

                                 <?php $sum = 0;

								 foreach($sessione as $sess=>$id) {

									 $sum += $id;

									 }

									 echo "$sum ";

									 ?>

                         </td>

		</tr>

        <tr class="table_data_footer">

			<td colspan=3 class="table_last_lr">

            </td>

		</tr>

        </tbody>

        </table>

        <br /><br />

        <table class="table" style="width: 90%; margin: auto;">

        <tbody>

        <tr>

        <td colspan="5" class="table_info_header table_first_lr">Riepilogo Operazioni</td>

        </tr>

        <tr class="table_data_header">

			<td class="table_data_l"><b>Operazione</b></td>

			<td class="table_data"><b>Imponibile</b></td>

			<td class="table_data"><b>IVA</b></td>

							<td class="table_data"><b>Totale</b></td>

					</tr>

                    <tr>

        

        

        <tr id="table_data_content">

						<td style="border-left:3px solid #2da4dd;"> 

						 <?php foreach ($sessione as $sess){

                                                echo '<a href="/circuito/Missiva/vedimissiva/'.$sess->id.'">' .$sess->prodotto. '('.$sess->tracking. ') - verso ' .$sess->cap_dest.' - '.$sess->comune_dest. ' ('.$sess->provincia_dest.')'. '</a><br><br>' ;

                                                

                                                }?>

						

						 

                        </td>

		

						<td class="table_data">

                        <?php foreach ($sessione as $sess){

						echo  $sess->prezzo.' €','<br><br> ' ;

						}?> 

                        </td>

                       

						<td class="table_data">

                        <?php foreach ($sessione as $sess){

						echo $sess->iva.'<br><br> ' ;

						}?> 

                        </td>

                        

                        <td class="table_data">

                        <?php foreach ($sessione as $sess){

						echo $sess->totale.' €','<br><br> ' ;

						}?>  

                        </td>

		</tr>

        <tr class="table_data_header">

        <td class="table_data_l" colspan="3">Importo Totale

        </td> 

        

                <td class="table_data">


                <form>

                <input size="3"  class="totale" id="totale" readonly="readonly" name="[totale]" 

                value="<?php 

							mysql_connect("localhost","root","");

                              mysql_select_db("circuito");

                                $query = "SELECT id, SUM(totale) FROM sessione"; 

	                            $result = mysql_query($query) or die(mysql_error());

                                  

                                while($totale = mysql_fetch_array($result)){

                                	echo  $totale['SUM(totale)'];

                                 }

                             ?>"> €

                             

                         </td>

        

                       </tr>

        

         <tr class="table_data_header">

        <td class="table_data_l" colspan="3">Importo Ricevuto

        </td>      

         

         <td class="table_data">

         <input  size="3" class="importoricevuto" id="importoricevuto" value="0.00" name="[importoricevuto]"/> €

         </td>

         

         <tr class="table_data_header">

        <td class="table_data_l" colspan="3">Resto

        </td>

         <td class="table_data">

         <input value="<?php echo $resto?>"  id="resto" class="resto" size="3" readonly="readonly" name="[resto]"/> €

         </form>

             

         </td>

        </tr>

		<tr class="table_data_footer">

			<td colspan=3 class="table_last_lr">

            <?php echo CHtml::submitButton('Il Cliente ha Pagato', array('submit' => array('ConfermaSessione'))); ?>

        <?php echo CHtml::submitButton('Continua a Postalizzare', array('submit' => array('SessioneCassa'))); ?>

            </td>

		</tr>

</tbody>

</table>

</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js "></script>

     <script>


$('.importoricevuto').keyup(function () {

	

    var sum = parseFloat($(this).val());

     

    $('.totale').each(function() {

        

		

			sum -= parseFloat($(this).val());

    });

	

	$('#resto').val( sum.toFixed(2));

     

});

</script>



Azione del Controller




			public function actionConfermaSessione()

	{

	$this->performAjaxValidation($model);

	$query = "delete from `sessione` where `sessione`<> :sessione";

    $command = Yii::app()->db->createCommand($query);

    $command->execute(array('sessione' => sessione));

    $session= new CHttpSession();

	$session->open();

	$session->regenerateID();

//	$this->redirect(Yii::app()->request->baseUrl.'/missiva/Inizio');

	$this->redirect(array('/site/index'));

		

		}



Cosa devo fare per far si che l’ azione venga eseguita???

Risolto inserendo action="Azione da esguire"

Un piccolo consiglio … le operazioni relative al db mettile nel model … non nella view !!! La view dev’essere più pulita possibile dal codice… dove hai scritto:

$query = "SELECT id, SUM(totale) FROM sessione"… crea una proprietà pubblica nel model e valorizzala così poi da poterla richiamare nella view con


$model->totale($param); 

un solo rigo …

ciao :)

Grazie pasquale del consiglio. A dire il vero ci avevo provato ma nn riuscivo a farla funzionare mi dava sempre un errore nel fetch_array e quindi ho optato per scrivermi la query nella vista. Studierò di più :) e vedrò di implementarla nel model. Grazie ancora