Ciao,
Sotto consiglio di "sensorario", che ringrazio, ho risolto il problema in questo modo:
ho creato questo js, ovviamente se tutti i campi necessari non hanno valore il calcolo del CF non viene eseguito.
$(function(){
$('#Persona_codice_fiscale').focus(function(){
// Per evitare di toccare il campo se gia' contiene una valore'
if ($('#Persona_codice_fiscale').val().length != 0)
return 0;
// Verifico di avere tutti i dati necessari per calcolare il CF
if ($('#Persona_nome').val().length == 0)
return 0;
if ($('#Persona_cognome').val().length == 0 )
return 0;
if ($('#Persona_sesso').val().length == 0 )
return 0;
if ($('#Persona_data_nascita').val().length == 0 )
return 0;
if ($('#Persona_nazione_nascita').val() != 'ITALIA'){
$.post('index.php?r=persona/CF', {
nome: $('#Persona_nome').val(),
cognome: $('#Persona_cognome').val(),
sesso: $('#Persona_sesso').val(),
// citta: $('#hidden_comune_nascita_id').val(),
citta: "",
data: $('#Persona_data_nascita').val(),
nazione_nascita: $('#Persona_nazione_nascita').val()
},function(json){
if(json.success.toString() === "true") {
$('#Persona_codice_fiscale').val(json.codice_fiscale);
}
else {
$('#Persona_codice_fiscale').val('errore');
}
}, 'json');
} // if
else
{
$.post('index.php?r=persona/CF', {
nome: $('#Persona_nome').val(),
cognome: $('#Persona_cognome').val(),
sesso: $('#Persona_sesso').val(),
citta: $('#hidden_comune_nascita_id').val(),
data: $('#Persona_data_nascita').val(),
nazione_nascita: $('#Persona_nazione_nascita').val()
},function(json){
if(json.success.toString() === "true") {
$('#Persona_codice_fiscale').val(json.codice_fiscale);
}
else {
$('#Persona_codice_fiscale').val('errore');
}
}, 'json');
}
});
}
);
Mentre per la questione php, metto solo il punto dove prendo le variabili passate in post e come restituisco il cf
public function actionCF() {
$cognome = $_POST['cognome'];
$nome = $_POST['nome'];
$data = $_POST['data'];
$citta = $_POST['citta'];
$sesso = $_POST['sesso'];
$nazione = $_POST['nazione_nascita'];
...
...
...
$result = array('success' => 'true', 'codice_fiscale' => $cf.$checkCode);
echo json_encode($result);
}
ovviamente la funzione CF deve essere abilitata
public function accessRules() {
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions' => array('index', 'view', 'loadcities', 'loadcap', 'CF'),
'users' => array('@'),
Ciao e grazie