Bonjour,
Ce code est une combinaison des tags jQuery http://aehlke.github.io/tag-it/ et de Google Places API https://developers.google.com/maps/d...ueryprediction
Encore un exemple ici: https://jqueryui.com/autocomplete/#multiple sauf que les languages de programmation dans mon cas sont des lieux récupérés par Google Places API.
J'ai un peu du mal avec le JSON et je voudrais enregistrer ces différents lieux dans des variables pour les stocker dans ma BDD, dans des tables séparés "city", "region" et "country".
Je cherche juste à completer ce code avec du JSON en enregistrant les tags obtenus dans des variables après avoir appuyé sur "Submit".
Avec du JSON je pourrais récupérer les types https://developers.google.com/places/supported_types pour savoir si c'est une ville, une région ou un 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 <html> <head> <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/flick/jquery-ui.css"> <link href="jquery.tagit.css" rel="stylesheet" type="text/css"> </head> <body> <p>This geotag demo uses the <strong>jQuery tag-it</strong> control and <strong>Google's AutocompleteService API</strong>.</p> <ul id="courseLocation"> </ul> <input type="button" id="submit-button" value="Submit" /> <ul id="result-list"> </ul> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript" charset="utf-8"></script> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js" type="text/javascript" charset="utf-8"></script> <script src="tag-it.min.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=places"></script> <script type="text/javascript"> $("#submit-button").click(function() { $("#result-list").empty(); var tags = $("#courseLocation").tagit("assignedTags"); for(var i=0; i<tags.length; i++) $("#result-list").append("<li>" + tags[i] + "</li>"); }); $(document).ready(function() { $("#courseLocation").tagit({ allowSpaces: true, autocomplete: { delay: 0, minLength: 2, source: function(request, response) { var callback = function (predictions, status) { if (status != google.maps.places.PlacesServiceStatus.OK) { return; } var data = $.map(predictions, function(item) { return item.description; }); response(data); } var service = new google.maps.places.AutocompleteService(); service.getQueryPredictions({ input: request.term }, callback); } } }); }); </script> </body> </html>
Et stocker dans du PHP, exemple:
Et on les sépareraient par des catégories. Les tags qui sont des villes seraient inséré dans une array "city" et ceux qui sont des régions seront inséré dans une array "region" etc:
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 function reverse_geocode($address) { $address = str_replace(" ", "+", "$address"); $url = "http://maps.google.com/maps/api/geocode/json?address=$address&sensor=false"; $result = file_get_contents("$url"); $json = json_decode($result); foreach ($json->results as $result) { foreach($result->address_components as $addressPart) { if((in_array('locality', $addressPart->types)) && (in_array('political', $addressPart->types))) $city = $addressPart->long_name; else if((in_array('administrative_area_level_2', $addressPart->types)) && (in_array('political', $addressPart->types))) $dept = $addressPart->long_name; else if((in_array('administrative_area_level_1', $addressPart->types)) && (in_array('political', $addressPart->types))) $state = $addressPart->long_name; else if((in_array('country', $addressPart->types)) && (in_array('political', $addressPart->types))) $country = $addressPart->long_name; } } if(($city != '') && ($dept != '') && ($state != '') && ($country != '')) $address = $city.', '.$dept.', '.$state.', '.$country; else if(($city != '') && ($state != '') && ($country != '')) $address = $city.', '.$state.', '.$country; else if(($city != '') && ($state != '')) $address = $city.', '.$state; else if(($state != '') && ($country != '')) $address = $state.', '.$country; elseif($country != '') $address = $country; // return $address; return "$country/$dept/$state/$city"; }
$tags= array ( "city" => array("Paris, France", "London, UK", "New York, United States"),
"region" => array("Ile-de-France, France", "Normandie, France", "Skåne, Sweden"),
"country" => array("France", "United States", "Germany", "Belgium", "Sweden") );
Comment feriez-vous pour poster tout mes tags et récupérer tout ceci en json/ajax pour ensuite les passer dans des variables php?
En attente de votre réponse.
Merci d'avance.
Partager