Bonjour.
Tu pourrais tout simplement dans ton formulaire faire un select sur les villes et les départements via json par exemple, puis lors de la récupération des données, tu récupères la donnée de la ville sélectionnée.
Sur ce, tu fais un find avec le comportement Containable pour récupérer les données nécessaires, par exemple :
if($this->request->is('post') && !empty($this->request->data)){
$complement = $this->User->City->find('first', array(
'conditions' => array('City.id' => $this->request->data'City']'id']),
'fields' => array('City.id', 'City.departments_id', 'City.regions_id')
)
);
$save = array(
'id' => $this->Auth->user('id'),
'username' => $this->request->data'User']'username'],
'adresse_1' => $this->request->data'User']'adresse_1'],
'adresse_2' => $this->request->data'User']'adresse_2'],
// 'zip_code' => $this->request->data'User']'zip_code'], pour ça il faudrait avoir le code postal dans la table cities
'cities_id' => $complement'City']'id'],
'departments_id' => $complement'City']'departments_id'],
'regions_id' => $complement'City']'regions_id']
);
if($this->User->save($save)){
/* Code */
} else {
/* Code */
}
}
que tu mets bien sûr dans la fonction qui permet d'éditer les informations.
Sinon il te faut une requête javascript pour chaque info.
- Le code postal permet de sélectionner la ville (action de l'utilisateur)
- La ville permet de récupérer le département correspondant (requête via javascript retourne celui-ci)
- Le département permet de récupérer la région correspondante (requête via javascript retourne celle-ci)
Par contre je ne comprends pas pourquoi tu veux faire ça, car l'utilisateur pourra modifier les infos liées et si tu utilises le disabled sur les input, je ne suis pas sur que le javascript puisse y modifier les infos.
De plus, je trouve que vous êtes beaucoup à un peu trop compter sur le javascript, vous ne devriez pas trop.