Yii Framework Forum: Chiamata Ajax E Completamento Form - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Chiamata Ajax E Completamento Form Rate Topic: -----

#1 User is offline   vangelis1977 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 37
  • Joined: 09-April 13

Posted 18 April 2013 - 10:52 AM

Ciao A tutti,
sto facendo una form per inserire i dati anagrafici delle persone. Per il calcolo del CF avendo tutti i dati necessari volevo farlo calcolare da solo sul onfocus del campo. Ho fatto il codice php e' funziona, ma non so quale e' la strada migliore per
richiamare la funzione in ajax e riempire il campo in automatico.
Grazie mille.
Stefano w dein
0

#2 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 18 April 2013 - 11:02 AM

Io includerei un file javascript esterno dentro al quale mi limiterei a fargli fare il suo dovere:

$(function(){
    $('#inputX, #inputY, #inputZ').change(function(){
        $.post('<?php echo Yii::app()->createUrl('ajax/compileCF'); ?>', {
            nome: $('#nome').val(),
            cognome: $('#cognome').val(),
            eta: $('#eta').val(),
            ...
        },function(json){
            if(json.success.toString() === true) {
                $('#codice_fiscale').val(json.codice_fiscale);
            }
        }, 'json');
    });
});


Quindi mi aspetterei un json in risposta da AjaxController::actionCompileFC() del tipo:

{
    "success": "true",
    "codice_fiscale": "poiodfahsdfjvgajvg"
}


oppure:

{
    "success": "false"
}

1

#3 User is offline   vangelis1977 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 37
  • Joined: 09-April 13

Posted 19 April 2013 - 04:28 PM

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
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users