[Risolto] Update: Chiedere Conferma All'utente Via Javascript ?

Nella view _form ho il classico pulsante di conferma, customizzato giusto per sfizio in base all’azione




<?php echo CHtml::submitButton($model->isNewRecord ? Yii::t('general','Crea') : Yii::t('general','Salva'), array('class'=>'mws-button green') ); ?>



Ora mi ritrovo che sta cosa mi serve, perchè devo fare quanto segue:

se (!$model->isNewRecord) e ($model->isActive == 0 ) {

chiedi via jascript conferma con classico prompt OK/No

  se si, salva e setta isActive=0 nei record figli (le causali)

} altrimenti {

submit e basta

}

Immagino che devo spostare l’if, questo lo capisco.

La prima domanda è: come faccio a determinare lo stato ‘live’ di isActive? (via jquery immagino… se è così ci dovrei riuscire da solo)

La seconda domanda è: come posso impostare una conferma via javascript sul submit ?

Secondo me puoi tenera la if in php, e se e’ il caso di chiedere aggiungi al bottone:


<?php echo CHtml::submitButton('...', array('class'=>'mws-button green', 'confirm'=>'Sei sicuro?') ); ?>



Vedi le opzioni aggiuntive nel clientChange.

Il codice viene eseguito se e solo se quel metodo restituisce true. Quel metodo che cosa fa? Mostra una finestra javascript particolare che può restituire true o false a seconda che si prema il pulsante OK oppure CANCEL.




<script>

    if (confirm('Sicuro di voler fare sta cosa?')) {

        // codice ...

    }

</script>



Così funziona (ho messo insieme i vostri due consigli)




if ($model->isNewRecord)

   echo CHtml::submitButton(Yii::t('general','Crea'),  

                               array('class'=>'mws-button green')  );

else 

   echo CHtml::submitButton(Yii::t('general','Salva'), 

                                array('class'=>'mws-button green',

                                       'onclick' => 'if ($("#CausalType_isActive").is(":checked")) return true; else return confirm("Davvero ?") ' ) ); 

				



Migliorie ?

A me sembra perfetto, da esposizione!


 return confirm("Davvero ?")

mi piace da matti XD.

Si direi che è perfetto.

Eh, eh, … in produzione ovviamente c’è un [font=“Courier New”]Yii::t[/font] ;D