Bonjour,
Dans un formulaire, j'ai mis quasiment le même programme pour trois autocomplete avec inerrogation de la BDD pour proposer à l'utilisateur des villes, selon le pays qu'il a choisi :
- pays de naissance => ville de naissance ;
- pays de l'adresse actuelle => ville de l'adresse actuelle ;
- pays de l'adresse pendant les études => ville de l'adresse pendant les études.
J'ai un seul programme PHP qui interroge la BDD selon le pays et le début du nom de la ville pour les trois autocomplete et les seules choses qui changent dans la partie Ajax sont le nom de l'input de la ville sur lequel porte l'autocomplete et celui du select du pays :
Le code est actuellement copié 3 fois avec les noms des contrôles différents mais y a t-il moyen de factoriser ça en un seul code ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 /** * JQuery.ui Autocomplete pour la ville de naissance * @abstract : Gère l'autocomplétion lors de la saisie de la ville de naissance en fonction du pays pré-sélectionné */ $( function() { $("#villeNaissance").autocomplete({ /* ou bien #apaVille (adresse postale actuelle) ou #apeVille (adresse pendant les études) */ minLength: 3, source: function(request, response) { var idPays = $("#paysNaissance").val(); /* ou bien #apaPays (adresse postale actuelle) ou #apePays (adresse pendant les études) */ var objData = {}; objData = {pays: idPays, debutVille: request.term}; $.ajax({ url: 'http://localhost/pef/fr/Inscription/aj_cherche_ville', dataType: "json", data: objData, type: 'POST', success: function (liste_villes) { response($.map(liste_villes, function(item) { return { label: item.vilNom + '(' + item.vilDpt + ')', value: item.vilNom + '(' + item.vilDpt + ')' } })); } }); }, minLength: 3, delay: 600 }); });
Partager