Bonjour,
J'ai des fonctions, que j'ai trouvé ici : http://www.geonames.org/export/ajax-...ocomplete.html
Elles permettent de détecter automatiquement le pays où l'on est, de générer une liste de villes correspondant au code postal écrit ( la correspondance code-postal et ville marchent uniquement pour la France.)
Dans ce code, les pays sont écrits sous forme de liste. Dans mon cas, ma liste est dynamique et elle se trouve dans ma base de données, du coup, la fonction ne permet plus de détecter le pays! Comment faire pour que ça marche pour ma liste dynamique ?
Code Ajax:
Voici deux codes de formulaire pour le champ pays :
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 <script> var postalcodes; function getLocation(jData) { if (jData == null) { return; } postalcodes = jData.postalcodes; if (postalcodes.length > 1) { document.getElementById('suggestBoxElement').style.visibility = 'visible'; var suggestBoxHTML = ''; for (i=0;i< jData.postalcodes.length;i++) { suggestBoxHTML += "<li class='select' id=pcId" + i + " onmousedown='suggestBoxMouseDown(" + i +")' onmouseover='suggestBoxMouseOver(" + i +")' onmouseout='suggestBoxMouseOut(" + i +")'> " + postalcodes[i].placeName +'</li>' ; //Ajout possible du code pays ainsi que le code postal avec : + postalcodes[i].countryCode + ' ' + postalcodes[i].postalcode + ' ' } document.getElementById('suggestBoxElement').innerHTML = suggestBoxHTML; } else { if (postalcodes.length == 1) { var placeInput = document.getElementById("placeInput"); placeInput.value = postalcodes[0].placeName; } closeSuggestBox(); } } function closeSuggestBox() { document.getElementById('suggestBoxElement').innerHTML = ''; document.getElementById('suggestBoxElement').style.visibility = 'hidden'; } function suggestBoxMouseOut(obj) { document.getElementById('pcId'+ obj).className = 'suggestions'; } function suggestBoxMouseDown(obj) { closeSuggestBox(); var placeInput = document.getElementById("placeInput"); placeInput.value = postalcodes[obj].placeName; } function suggestBoxMouseOver(obj) { document.getElementById('pcId'+ obj).className = 'suggestionMouseOver'; } function postalCodeLookup() { var country = document.getElementById("countrySelect").value; if (geonamesPostalCodeCountries.toString().search(country) == -1) { return; } document.getElementById('suggestBoxElement').style.visibility = 'visible'; document.getElementById('suggestBoxElement').innerHTML = '<small><i>Recherche ...</i></small>'; var postalcode = document.getElementById("postalcodeInput").value; request = 'http://api.geonames.org/postalCodeLookupJSON?postalcode=' + postalcode + '&country=' + country + '&username=croixrougecrf&callback=getLocation'; aObj = new JSONscriptRequest(request); aObj.buildScriptTag(); aObj.addScriptTag(); } function setDefaultCountry() { var countrySelect = document.getElementById("countrySelect"); for (i=0;i< countrySelect.length;i++) { if (countrySelect[i].value == geonamesUserIpCountryCode) { countrySelect.selectedIndex = i; } } } </script>
Code pour liste de pays = liste dynamique => ne détecte pas le pays
Code pour liste de pays = liste statique => détecte le pays
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <!-- Pays liste dynamique ------> <section class="col col-5"> <label class="select"> <select id="countrySelect" name="country"> <?php $reponse = $bdd->query('SELECT * FROM pays'); echo '<OPTION VALUE="">Pays</OPTION>'; while ($donnees = $reponse->fetch(PDO::FETCH_ASSOC)){ echo '<OPTION VALUE="'.$donnees["id_pays"].'">'.$donnees["pays"].'</OPTION>'; } ?> </select>
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <!-- Pays liste statique --------------> <section class="col col-5"> <label class="select"> <select id="countrySelect" name="country"><option value="AD"> Andorra</option><option value="AE"> United Arab Emirates</option><option value="AF"> Afghanistan</option><option value="AG"> Antigua and Barbuda</option><option value="AI"> Anguilla</option><option value="AL"> Albania</option><option value="AM"> Armenia</option><option value="AN"> Netherlands Antilles</option><option value="AO"> Angola</option><option value="AQ"> Antarctica</option><option value="AR"> Argentina</option><option value="AS"> American Samoa</option><option value="AT"> Austria</option><option value="AU"> Australia</option><option value="AW"> Aruba</option><option value="AX"> Aland Islands</option><option value="AZ"> Azerbaijan</option><option value="BA"> Bosnia and Herzegovina</option><option value="BB"> Barbados</option><option value="BD"> Bangladesh</option><option value="BE"> Belgium</option><option value="BF"> Burkina Faso</option><option value="BG"> Bulgaria</option><option value="BH"> Bahrain</option><option value="BI"> Burundi</option><option value="BJ"> Benin</option><option value="BM"> Bermuda</option><option value="BN"> Brunei</option><option value="BO"> Bolivia</option><option value="BR"> Brazil</option><option value="BS"> Bahamas</option><option value="BT"> Bhutan</option><option value="BV"> Bouvet Island</option><option value="BW"> Botswana</option><option value="BY"> Belarus</option><option value="BZ"> Belize</option><option value="CA"> Canada</option><option value="CC"> Cocos Islands</option><option value="CD"> The Democratic Republic Of Congo</option><option value="CF"> Central African Republic</option><option value="CG"> Congo</option><option value="CH"> Switzerland</option><option value="CI"> Côte d'Ivoire</option><option value="CK"> Cook Islands</option><option value="CL"> Chile</option><option value="CM"> Cameroon</option><option value="CN"> China</option><option value="CO"> Colombia</option><option value="CR"> Costa Rica</option><option value="CS"> Serbia and Montenegro</option><option value="CU"> Cuba</option><option value="CV"> Cape Verde</option><option value="CX"> Christmas Island</option><option value="CY"> Cyprus</option><option value="CZ"> Czech Republic</option><option value="DE"> Germany</option><option value="DJ"> Djibouti</option><option value="DK"> Denmark</option><option value="DM"> Dominica</option><option value="DO"> Dominican Republic</option><option value="DZ"> Algeria</option><option value="EC"> Ecuador</option><option value="EE"> Estonia</option><option value="EG"> Egypt</option><option value="EH"> Western Sahara</option><option value="ER"> Eritrea</option><option value="ES"> Spain</option><option value="ET"> Ethiopia</option><option value="FI"> Finland</option><option value="FJ"> Fiji</option><option value="FK"> Falkland Islands</option><option value="FM"> Micronesia</option><option value="FO"> Faroe Islands</option><option value="FR"> France</option><option value="GA"> Gabon</option><option value="GB"> United Kingdom</option><option value="GD"> Grenada</option><option value="GE"> Georgia</option><option value="GF"> French Guiana</option><option value="GH"> Ghana</option><option value="GI"> Gibraltar</option><option value="GL"> Greenland</option><option value="GM"> Gambia</option><option value="GN"> Guinea</option><option value="GP"> Guadeloupe</option><option value="GQ"> Equatorial Guinea</option><option value="GR"> Greece</option><option value="GS"> South Georgia And The South Sandwich Islands</option><option value="GT"> Guatemala</option><option value="GU"> Guam</option><option value="GW"> Guinea-Bissau</option><option value="GY"> Guyana</option><option value="HK"> Hong Kong</option><option value="HM"> Heard Island And McDonald Islands</option><option value="HN"> Honduras</option><option value="HR"> Croatia</option><option value="HT"> Haiti</option><option value="HU"> Hungary</option><option value="ID"> Indonesia</option><option value="IE"> Ireland</option><option value="IL"> Israel</option><option value="IN"> India</option><option value="IO"> British Indian Ocean Territory</option><option value="IQ"> Iraq</option><option value="IR"> Iran</option><option value="IS"> Iceland</option><option value="IT"> Italy</option><option value="JM"> Jamaica</option><option value="JO"> Jordan</option><option value="JP"> Japan</option><option value="KE"> Kenya</option><option value="KG"> Kyrgyzstan</option><option value="KH"> Cambodia</option><option value="KI"> Kiribati</option><option value="KM"> Comoros</option><option value="KN"> Saint Kitts And Nevis</option><option value="KP"> North Korea</option><option value="KR"> South Korea</option><option value="KW"> Kuwait</option><option value="KY"> Cayman Islands</option><option value="KZ"> Kazakhstan</option><option value="LA"> Laos</option><option value="LB"> Lebanon</option><option value="LC"> Saint Lucia</option><option value="LI"> Liechtenstein</option><option value="LK"> Sri Lanka</option><option value="LR"> Liberia</option><option value="LS"> Lesotho</option><option value="LT"> Lithuania</option><option value="LU"> Luxembourg</option><option value="LV"> Latvia</option><option value="LY"> Libya</option><option value="MA"> Morocco</option><option value="MC"> Monaco</option><option value="MD"> Moldova</option><option value="MG"> Madagascar</option><option value="MH"> Marshall Islands</option><option value="MK"> Macedonia</option><option value="ML"> Mali</option><option value="MM"> Myanmar</option><option value="MN"> Mongolia</option><option value="MO"> Macao</option><option value="MP"> Northern Mariana Islands</option><option value="MQ"> Martinique</option><option value="MR"> Mauritania</option><option value="MS"> Montserrat</option><option value="MT"> Malta</option><option value="MU"> Mauritius</option><option value="MV"> Maldives</option><option value="MW"> Malawi</option><option value="MX"> Mexico</option><option value="MY"> Malaysia</option><option value="MZ"> Mozambique</option><option value="NA"> Namibia</option><option value="NC"> New Caledonia</option><option value="NE"> Niger</option><option value="NF"> Norfolk Island</option><option value="NG"> Nigeria</option><option value="NI"> Nicaragua</option><option value="NL"> Netherlands</option><option value="NO"> Norway</option><option value="NP"> Nepal</option><option value="NR"> Nauru</option><option value="NU"> Niue</option><option value="NZ"> New Zealand</option><option value="OM"> Oman</option><option value="PA"> Panama</option><option value="PE"> Peru</option><option value="PF"> French Polynesia</option><option value="PG"> Papua New Guinea</option><option value="PH"> Philippines</option><option value="PK"> Pakistan</option><option value="PL"> Poland</option><option value="PM"> Saint Pierre And Miquelon</option><option value="PN"> Pitcairn</option><option value="PR"> Puerto Rico</option><option value="PS"> Palestine</option><option value="PT"> Portugal</option><option value="PW"> Palau</option><option value="PY"> Paraguay</option><option value="QA"> Qatar</option><option value="RE"> Reunion</option><option value="RO"> Romania</option><option value="RU"> Russia</option><option value="RW"> Rwanda</option><option value="SA"> Saudi Arabia</option><option value="SB"> Solomon Islands</option><option value="SC"> Seychelles</option><option value="SD"> Sudan</option><option value="SE"> Sweden</option><option value="SG"> Singapore</option><option value="SH"> Saint Helena</option><option value="SI"> Slovenia</option><option value="SJ"> Svalbard And Jan Mayen</option><option value="SK"> Slovakia</option><option value="SL"> Sierra Leone</option><option value="SM"> San Marino</option><option value="SN"> Senegal</option><option value="SO"> Somalia</option><option value="SR"> Suriname</option><option value="ST"> Sao Tome And Principe</option><option value="SV"> El Salvador</option><option value="SY"> Syria</option><option value="SZ"> Swaziland</option><option value="TC"> Turks And Caicos Islands</option><option value="TD"> Chad</option><option value="TF"> French Southern Territories</option><option value="TG"> Togo</option><option value="TH"> Thailand</option><option value="TJ"> Tajikistan</option><option value="TK"> Tokelau</option><option value="TL"> Timor-Leste</option><option value="TM"> Turkmenistan</option><option value="TN"> Tunisia</option><option value="TO"> Tonga</option><option value="TR"> Turkey</option><option value="TT"> Trinidad and Tobago</option><option value="TV"> Tuvalu</option><option value="TW"> Taiwan</option><option value="TZ"> Tanzania</option><option value="UA"> Ukraine</option><option value="UG"> Uganda</option><option value="UM"> United States Minor Outlying Islands</option><option value="US"> United States</option><option value="UY"> Uruguay</option><option value="UZ"> Uzbekistan</option><option value="VA"> Vatican</option><option value="VC"> Saint Vincent And The Grenadines</option><option value="VE"> Venezuela</option><option value="VG"> British Virgin Islands</option><option value="VI"> U.S. Virgin Islands</option><option value="VN"> Vietnam</option><option value="VU"> Vanuatu</option><option value="WF"> Wallis And Futuna</option><option value="WS"> Samoa</option><option value="YE"> Yemen</option><option value="YT"> Mayotte</option><option value="ZA"> South Africa</option><option value="ZM"> Zambia</option><option value="ZW"> Zimbabwe</option></select> <i></i> </label> </section>
Partager