Voilà je m'explique, J'ai un formulaire qui me permet d'ajouter des adresses dans une bdd. jusque là tout va bien.
Sur le site, j'utilise la géolocalisation qui permet de trouvé les adresses des boutique les plus près d'un point donné. Pour ça, j'ai besoin des coordonnées latitude et longitude de chaque adresse. À l'aide du fichier geocode.js (voir plus bas), et d'un formulaire simple, je peux récupérer ses coordonnées puis les copier dans ma bdd... mais c'est loin d'être pratique.
Je cherche donc à lier le fichier geocode et mon formulaire de façon à ce que les latitude et longitude soient ajouté automatiquement dans ma bdd quand on entre une nouvelle adresse.
Voici le fichier geocode:
et mon formulaire:
Modifié par juliesunset (13 Aug 2013 - 19:38)
Sur le site, j'utilise la géolocalisation qui permet de trouvé les adresses des boutique les plus près d'un point donné. Pour ça, j'ai besoin des coordonnées latitude et longitude de chaque adresse. À l'aide du fichier geocode.js (voir plus bas), et d'un formulaire simple, je peux récupérer ses coordonnées puis les copier dans ma bdd... mais c'est loin d'être pratique.
Je cherche donc à lier le fichier geocode et mon formulaire de façon à ce que les latitude et longitude soient ajouté automatiquement dans ma bdd quand on entre une nouvelle adresse.
Voici le fichier geocode:
//Geocode function for the origin location
function GoogleGeocode() {
geocoder = new google.maps.Geocoder();
this.geocode = function(address, callbackFunction) {
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var result = {};
result.latitude = results[0].geometry.location.lat();
result.longitude = results[0].geometry.location.lng();
callbackFunction(result);
} else {
alert("Geocode was not successful for the following reason: " + status);
callbackFunction(null);
}
});
};
}
//Process form input
$(function() {
$('#user-location').on('submit', function(e){
//Stop the form submission
e.preventDefault();
//Get the user input and use it
var userinput = $('form #address').val();
if (userinput == "")
{
alert("The input box was blank.");
}
var g = new GoogleGeocode();
var address = userinput;
g.geocode(address, function(data) {
if(data != null) {
olat = data.latitude;
olng = data.longitude;
$('#geocode-result').append("Latitude: " + olat + "<br />" + "Longitude: " + olng + "<br /><br />");
} else {
//Unable to geocode
alert('ERROR! Unable to geocode address');
}
});
});
});
et mon formulaire:
<form action="ajout.php" method="post" name="form" id="user-location">
<fieldset>
<legend class="gradient-gray">Ajouter un nouveau détaillants</legend>
<?php
if (!empty($_POST['ajouter'])){
$site = $_POST['site'];
$etat = $_POST['etat'];
$name = addslashes($_POST['name']);
$adresse = addslashes($_POST['adresse']);
$city = addslashes($_POST['city']);
$postal = $_POST['postal'];
$prov = $_POST['prov'];
$country = $_POST['country'];
$phone = $_POST['phone'];
$cell = $_POST['cell'];
$free = $_POST['free'];
$fax = $_POST['fax'];
$email = $_POST['email'];
$web = $_POST['web'];
//pour geocode
$address = $adresse.', '.$city.', '.$prov.', '.$country;
//Vérificarion si l'adresse entré existe déjà
//$adresse_verif = mysql_result(mysqli_query($config, 'SELECT COUNT(*) FROM dealer WHERE address = "'.$adresse.'"'), 0);
$etat_verif = '--État--';
$country_verif = '--Pays--';
$prov_verif = '--Province--';
if ($adresse_verif != 0){
echo "<p align=\"center\">L'adresse<br>
".$adresse."<br>
existe déjà!<br /><br /></p>";
}
//Vérification si le champs nom est remplie
elseif (empty($adresse)){
echo "<p align=\"center\">Veuillez entrer une adresse</p>";
}
//Vérification si une année a été choisi
elseif ($etat == $etat_verif){
echo "<p align=\"center\">Le magasin est-il actif?</p>";
}
//Vérification si une année a été choisi
elseif ($prov == $prov_verif){
$prov = 0;
}
else{
$result = mysqli_query($config, 'INSERT INTO dealer(etat, name, lat, lng, address, city, postal, state, country, phone, cell, free, fax, email, web) VALUES("'.$etat.'","'.$name.'","'.$lat.'","'.$lng.'","'.$adresse.'","'.$city.'","'.$postal.'","'.$prov.'","'.$country.'","'.$phone.'","'.$cell.'","'.$free.'","'.$fax.'","'.$email.'","'.$web.'")') or die("67 - ".mysqli_error());
}
}
?><p><label for="site">Site: </label>
<select name="site" id="site">
<option selected="selected">-- Site --</option>
<option value="spypoint">SPYPOINT</option>
<option value="all">Tout</option>
</select></p>
<p><label for="etat">État: </label>
<select name="etat" id="etat">
<option selected="selected">-- État --</option>
<option value="1">Actif</option>
<option value="0">Inactif</option>
</select></p>
<p><label for="name">Magasin: </label>
<input name="name" id="name" type="text" size="30" /></p>
<p><label for="adresse">Adresse: </label>
<textarea name="adresse" id="adresse" cols="37" rows="2"></textarea></p>
<p><label for="city">Ville: </label>
<input name="city" id="city" type="text" size="30" /></p>
<p><label for="postal">Code postal: </label>
<input name="postal" id="postal" type="text" size="30" /></p>
<p><label for="country">Pays: </label>
<select id="paysSelect" name="country">
<option value="">--- Pays ----</option>
<?php
$select = mysqli_query($config,"SELECT country,pays FROM pays ORDER BY pays") or die("116 - ".mysqli_error());
while ($data = mysqli_fetch_array($select)){
if (!empty($data['pays'])){
?>
<option value="<?php echo $data['country'] ?>"><?php echo $data['pays'] ?></option>
<?php
}
}
?>
</select></p>
<p><label for="prov">Province: </label>
<select name="prov" id="prov">
<option selected="selected">-- Province --</option>
<?php
$select = mysqli_query($config, "SELECT * FROM provinces ORDER BY prov") or die("131 - ".mysqli_error());
while ($data = mysqli_fetch_array($select)){
if (!empty($data['prov'])){
?>
<option value="<?php echo $data['state']; ?>"><?php echo $data['prov'].' ('.$data['abbr'].')'; ?></option>
<?php
}
}
?>
</select></p>
<p><label for="phone">Téléphone: </label>
<input name="phone" id="phone" type="text" size="30" /></p>
<p><label for="cell">Cell: </label>
<input name="cell" id="cell" type="text" size="30" /></p>
<p><label for="free">Free: </label>
<input name="free" id="free" type="text" size="30" /></p>
<p><label for="fax">Fax: </label>
<input name="fax" id="fax" type="text" size="30" /></p>
<p><label for="email">Mail: </label>
<input name="email" id="email" type="text" size="30" /></p>
<p><label for="web">Site Web: </label>
<input name="web" id="web" type="text" size="30" /></p>
<p><label></label>
<input name="ajouter" type="submit" value="Ajouter" /></p>
</fieldset>
</form>
Modifié par juliesunset (13 Aug 2013 - 19:38)