Salve,
ho un form
dove il cliente deve inserire cap, comune, provincia.
Vorrei far si che, se il cliente inserisce come cap 00123 (cap di ROMA) e come comune inserisce MILANO, il form NON passi validazione e che venga stampato a video un messaggio che gli dica che quel comune non è corretto.
Se invece cap e comune sono corretti ma il cliente dimentica di inserire la provincia, vorrei che questa venisse inserita automaticamente.
Come posso fare questo nelle rules del model?
Oppure se non posso farlo nelle rules del model in che modo posso implementare questa funzione per far si che se il comune inserito NON corrisponde a quel cap, il form NON passi la validazione?
Allego la tabella dei cap che ho nel database.
Grazie
Questo è il form:
<div class="form">
<?php $form=$this->beginWidget('bootstrap.widgets.TbActiveForm', array(
'id'=>'missiva-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'=>true,
'clientOptions'=>array(
'validate OnSubmit'=>true,
))); ?>
<?php echo $form->errorSummary($model); ?>
<div class="table_box">
<table class="table" style="width: 90%; margin: auto;">
<tbody>
<tr>
<td colspan=2 class="table_info_header table_first_lr"><center>Destinatario</center></td>
</tr>
<tr>
<td class="table_info_desc">
<?php echo $form->labelEx($model,'cognome'); ?>
</td>
<td class="table_info_data">
<?php echo $form->textField($model,'cliente_cognome',array('class'=>'span8','maxlength'=>100)); ?>
<?php echo $form->error($model,'cliente_cognome'); ?>
</td>
</tr>
<tr>
<td class="table_info_desc">
<?php echo $form->labelEx($model,'nome'); ?>
</td>
<td class="table_info_data">
<?php echo $form->textField($model,'cliente_nome',array('class'=>'span8','maxlength'=>100)); ?>
<?php echo $form->error($model,'cliente_nome'); ?>
</td>
</tr>
<tr>
<td class="table_info_desc table_info_desc_size_100 table_last_l" rowspan="3"><?php echo $form->labelEx($model,'Indirizzo'); ?></td>
<td class="table_info_data">
<?php echo $form->dropDownList($model,'cliente_tipovia', CHtml::listData(Ubicazioni::model()->findAll(), "nomeub","nomeub"), array('class'=>'span2'));?>
<?php echo $form->error($model,'cliente_tipovia'); ?>
<?php /* echo $form->labelEx($model,''); */?>
<?php echo $form->textField($model,'cliente_indirizzo',array('class'=>'span5','maxlength'=>50)); ?>
N°
<?php echo $form->textField($model,'cliente_civico',array('class'=>'span1','maxlength'=>10)); ?>
<?php echo $form->error($model,'cliente_indirizzo'); ?>
<?php echo $form->error($model,'cliente_civico'); ?>
</td>
</tr>
<tr>
<td class="table_info_data">
Cap<?php /*echo $form->labelEx($model,'cap'); */?>
<?php echo $form->textField($model,'cliente_cap',array('class'=>'span1','maxlength'=>10)); ?>
Comune<?php /*echo $form->labelEx($model,'comune'); */?>
<?php echo $form->textField($model,'cliente_comune',array('class'=>'span4','maxlength'=>60)); ?>
<?php /*echo $form->labelEx($model,'prov'); */?>
Prov.<?php echo $form->textField($model,'cliente_provincia',array('class'=>'span1','maxlength'=>60)); ?>
<?php echo $form->error($model,'cliente_cap'); ?>
<?php echo $form->error($model,'cliente_comune'); ?>
<?php echo $form->error($model,'cliente_provincia'); ?>
</td>
</tr>
<tr>
<td class="table_info_data table_last_r">
<?php echo $form->labelEx($model,'Nazione'); ?>
<?php echo $form->dropDownList($model,'cliente_stato', CHtml::listData(Stati::model()->findAll(), "nome","nome"), array('class'=>'span5'));?>
<?php echo $form->error($model,'cliente_stato'); ?>
</td>
</tr>
<tr class="table_data_footer">
<td colspan=2 class="table_last_lr">
<center><?php echo CHtml::submitButton('Annulla', array('name'=>'annulla', 'class'=>'btn btn-danger')); ?>
<?php echo CHtml::submitButton('Avanti' ,array('class'=>'btn btn-primary', 'Pstep2')); ?></center>
<?php $this->endWidget(); ?>
</td>
</tr>
</tbody>
</table>