11499 sujets

JavaScript, DOM et API Web HTML5

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:
//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&eacute;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:&nbsp;</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">&Eacute;tat:&nbsp;</label>
              <select name="etat" id="etat">
                	<option selected="selected">-- &Eacute;tat --</option>
                    <option value="1">Actif</option>
                    <option value="0">Inactif</option>
                </select></p>
            <p><label for="name">Magasin:&nbsp;</label>
            	<input name="name" id="name" type="text" size="30" /></p>
            <p><label for="adresse">Adresse:&nbsp;</label>
            	<textarea name="adresse" id="adresse" cols="37" rows="2"></textarea></p>
            <p><label for="city">Ville:&nbsp;</label>
            	<input name="city" id="city" type="text" size="30" /></p>
          <p><label for="postal">Code postal:&nbsp;</label>
       	  <input name="postal" id="postal" type="text" size="30" /></p>
            <p><label for="country">Pays:&nbsp;</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:&nbsp;</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&eacute;l&eacute;phone:&nbsp;</label>
                    <input name="phone" id="phone" type="text" size="30" /></p>
                <p><label for="cell">Cell:&nbsp;</label>
                    <input name="cell" id="cell" type="text" size="30" /></p>
                <p><label for="free">Free:&nbsp;</label>
                    <input name="free" id="free" type="text" size="30" /></p>
                <p><label for="fax">Fax:&nbsp;</label>
                    <input name="fax" id="fax" type="text" size="30" /></p>
                <p><label for="email">Mail:&nbsp;</label>
                    <input name="email" id="email" type="text" size="30" /></p>
                <p><label for="web">Site Web:&nbsp;</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)
Dans ton js, une fois que tu as le résultat du geocoding, actuellement tu fais ca :

$('#geocode-result').append("Latitude: " + olat + "<br />" + "Longitude: " + olng + "<br /><br />");


A la place, tu n'as qu'à mettre les valeurs de latitude et de longitude dans des inputs cachés de ton formulaire, et ne plus empêcher la soumission du formulaire (virer le e.preventDefault()).
OK, j'étais pas si loin j'avais commencer à faire un truc du genre. Et cette ligne me posait problème justement.

Voici où j'en suis:
<form action="ajout.php" method="post" name="form"  id="user-location">
	<fieldset>
		<legend class="gradient-gray">Ajouter un nouveau d&eacute;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'];

		//Vérification si le champs adresse est remplie
                if (empty($adresse)){
                	echo "<p align=\"center\">Veuillez entrer une adresse</p>";
		else{
			$address = $adresse.', '.$city.', '.$prov.', '.$country;
			echo '<input name="address" id="address" type="text" value="'.$address.'" size="45" /><br>
				<div id="geocode-result"></div>';
					
				$lat = $_POST['lat'];
				$lng = $_POST['lng'];
						
                	$result = mysqli_query($config, 'INSERT INTO dealer(site, etat, name, lat, lng, address, city, postal, state, country, phone, cell, free, fax, email, web) VALUES("'.$site.'","'.$etat.'","'.$name.'","'.$lat.'","'.$lng.'","'.$adresse.'","'.$city.'","'.$postal.'","'.$prov.'","'.$country.'","'.$phone.'","'.$cell.'","'.$free.'","'.$fax.'","'.$email.'","'.$web.'")') or die("80 - ".mysqli_error());
			echo '<ul class="alert">
					<li><span>Site:</span> '.$site.'</li>
					<li><span>&Eacute;tat:</span> '.$etat.'</li>
					<li><span>Magasin:</span> '.$name.'</li>
					<li><span>Adresse:</span>'.$adresse.'</li>
					<li><span>Ville:</span> '.$city.'</li>
					<li><span>Province:</span> '.$prov.'</li>
					<li><span>CP:</span>'.$postal.'</li>
					<li><span>Pays:</span> '.$country.'</li>
					<li><span>Tel:</span> '.$phone.'</li>
					<li><span>Cell:</span> '.$cell.'</li>
					<li><span>Free:</span> '.$free.'</li>
					<li><span>Fax:</span> '.$fax.'</li>
					<li><span>Mail:</span> '.$email.'</li>
					<li><span>Web:</span>'.$web.'</li>
					<li><span>Lat:</span>'.$lat.'</li>
					<li><span>Lng:</span>'.$lng.'</li>
				</ul>';
                    }
                }
            ?><p><label for="site">Site:&nbsp;</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">&Eacute;tat:&nbsp;</label>
              <select name="etat" id="etat">
                	<option selected="selected">-- &Eacute;tat --</option>
                    <option value="1">Actif</option>
                    <option value="0">Inactif</option>
                </select></p>
            <p><label for="name">Magasin:&nbsp;</label>
            	<input name="name" id="name" type="text" size="30" /></p>
            <p><label for="adresse">Adresse:&nbsp;</label>
            	<textarea name="adresse" id="adresse" cols="37" rows="2"></textarea></p>
            <p><label for="city">Ville:&nbsp;</label>
            	<input name="city" id="city" type="text" size="30" /></p>
          <p><label for="postal">Code postal:&nbsp;</label>
       	  <input name="postal" id="postal" type="text" size="30" /></p>
            <p><label for="country">Pays:&nbsp;</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:&nbsp;</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&eacute;l&eacute;phone:&nbsp;</label>
                    <input name="phone" id="phone" type="text" size="30" /></p>
                <p><label for="cell">Cell:&nbsp;</label>
                    <input name="cell" id="cell" type="text" size="30" /></p>
                <p><label for="free">Free:&nbsp;</label>
                    <input name="free" id="free" type="text" size="30" /></p>
                <p><label for="fax">Fax:&nbsp;</label>
                    <input name="fax" id="fax" type="text" size="30" /></p>
                <p><label for="email">Mail:&nbsp;</label>
                    <input name="email" id="email" type="text" size="30" /></p>
                <p><label for="web">Site Web:&nbsp;</label>
               <input name="web" id="web" type="text" size="30" /></p>
          <p><label></label>
               	<input name="ajouter" type="submit" value="Ajouter" /></p>
              </fieldset>
          </form>


ensuite j'ai remplacer la ligne
$('#geocode-result').append("Latitude: " + olat + "<br />" + "Longitude: " + olng + "<br /><br />");

par:
$('#geocode-result').append("<input name='lat' id='lat' type='text' value=" + olat + " size='30' /><br><input name='lng' id='lng' type='text' value=" + olng + " size='30' />");


mais ça ne fonctionne pas...
Ca ne fonctionne pas parce qu'au moment ou le formulaire est envoyé, #geocode-result n’existe pas dans ta page.
Ajoute deux <input type="hidden" /> dans ton formulaire, donne leurs des ids (par exemple #lat et #long). Et au lieu de faire le append, tu fais


$('#lat').val(olat);
//pareil pour long


De manière générale, tu devrais éviter de mélanger autant le php et le html pour rendre ton code plus lisible, et côté js éviter de trop créer des éléments à la volée quand ce n'est pas nécessaire.
MErci pour t'es réponses.

Voilà j'ai fais comme ça dans mon js:

		  $('#lat').val(olat);
		  $('#lng').val(olng);


Et ajouté 2 input directement dans mon formulaire:
<form action="ajout.php" method="post" name="form"  id="user-location">
		<fieldset>
			<legend class="gradient-gray">Ajouter un nouveau d&eacute;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'];
				
				$address = $adresse.', '.$city.', '.$prov.', '.$country;
					echo '<input name="address" id="address" type="text" value="'.$address.'" size="45" />';
					$lat = $_POST['lat'];
					$lng = $_POST['lng'];
if (empty($adresse)){
                	echo "<p align=\"center\">Veuillez entrer une adresse</p>";
					//Vérification si un etat a été choisi
					if ($etat == $etat_verif){
						echo "<p align=\"center\">Le magasin est-il actif?</p>";
					}
                }
				else{
						
                	$result = mysqli_query($config, 'INSERT INTO dealer(site, etat, name, lat, lng, address, city, postal, state, country, phone, cell, free, fax, email, web) VALUES("'.$site.'","'.$etat.'","'.$name.'","'.$lat.'","'.$lng.'","'.$adresse.'","'.$city.'","'.$postal.'","'.$prov.'","'.$country.'","'.$phone.'","'.$cell.'","'.$free.'","'.$fax.'","'.$email.'","'.$web.'")') or die("80 - ".mysqli_error());
					echo '<ul class="alert">
							<li><span>Site:</span> '.$site.'</li>
							<li><span>&Eacute;tat:</span> '.$etat.'</li>
							<li><span>Magasin:</span> '.$name.'</li>
							<li><span>Adresse:</span> '.$adresse.'</li>
							<li><span>Ville:</span> '.$city.'</li>
							<li><span>Province:</span> '.$prov.'</li>
							<li><span>CP:</span> '.$postal.'</li>
							<li><span>Pays:</span> '.$country.'</li>
							<li><span>Tel:</span> '.$phone.'</li>
							<li><span>Cell:</span> '.$cell.'</li>
							<li><span>Free:</span> '.$free.'</li>
							<li><span>Fax:</span> '.$fax.'</li>
							<li><span>Mail:</span> '.$email.'</li>
							<li><span>Web:</span> '.$web.'</li>
							<li><span>Lat:</span> '.$lat.'</li>
							<li><span>Lng:</span> '.$lng.'</li>
						</ul>';
                    }
                }
            ?><p><label for="site">Site:&nbsp;</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">&Eacute;tat:&nbsp;</label>
              <select name="etat" id="etat">
                	<option selected="selected">-- &Eacute;tat --</option>
                    <option value="1">Actif</option>
                    <option value="0">Inactif</option>
                </select></p>
            <p><label for="name">Magasin:&nbsp;</label>
            	<input name="name" id="name" type="text" size="30" /></p>
            <p><label for="adresse">Adresse:&nbsp;</label>
            	<textarea name="adresse" id="adresse" cols="37" rows="2"></textarea></p>
            <p><label for="city">Ville:&nbsp;</label>
            	<input name="city" id="city" type="text" size="30" /></p>
          
            <p><input name="lat" id="lat" type="text" size="30" /></p>
            <p><input name="lng" id="lng" type="text" size="30" /></p>
          <p><label for="postal">Code postal:&nbsp;</label>
       	  <input name="postal" id="postal" type="text" size="30" /></p>
            <p><label for="country">Pays:&nbsp;</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:&nbsp;</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&eacute;l&eacute;phone:&nbsp;</label>
                    <input name="phone" id="phone" type="text" size="30" /></p>
                <p><label for="cell">Cell:&nbsp;</label>
                    <input name="cell" id="cell" type="text" size="30" /></p>
                <p><label for="free">Free:&nbsp;</label>
                    <input name="free" id="free" type="text" size="30" /></p>
                <p><label for="fax">Fax:&nbsp;</label>
                    <input name="fax" id="fax" type="text" size="30" /></p>
                <p><label for="email">Mail:&nbsp;</label>
                    <input name="email" id="email" type="text" size="30" /></p>
                <p><label for="web">Site Web:&nbsp;</label>
               <input name="web" id="web" type="text" size="30" /></p>
          <p><label></label>
               	<input name="ajouter" type="submit" value="Ajouter" /></p>
              </fieldset>
          </form>


Ça ne fonctionne pas.
Je pense que mon problème se situ au niveau du input qui est dans le code php... le js récupère les info d'un input "address" qui correpondent en fait aux infos contenue dans 4 input de mon formulaire...
J'ai l'impression que tu ne comprend pas trop ce que tu fais Smiley smile

Mais oui, le problème viens de la... et c'est le même que précédemment. Le code js interviens juste avant que les données du formulaire soit envoyés au serveur. Sauf qu'a ce moment la, #address n'existe pas encore (tout comme #geocode-result n'existait pas). Ton PHP était conçu pour faire l'opération en 2 étapes, mais ce n'est plus ce que tu veux faire maintenant... donc il faut le changer aussi.

En résumé, ce qu'il faut faire

1. Afficher le formulaire en html tout simple
2. En js, au moment du submit, faire le geocoding en utilisant les champs adresse, ville, province, pays (comme tu le fais en php actuellement) et stocker le résultat dans des champs inputs
3. Laisser le formulaire s'envoyer au serveur
4. En php, faire les vérification et l'insertion en base de donnée
sephitan a écrit :
J'ai l'impression que tu ne comprend pas trop ce que tu fais Smiley smile
Ben j'essaie entouka!

sephitan a écrit :
1. Afficher le formulaire en html tout simple
2. En js, au moment du submit, faire le geocoding en utilisant les champs adresse, ville, province, pays (comme tu le fais en php actuellement) et stocker le résultat dans des champs inputs
3. Laisser le formulaire s'envoyer au serveur
4. En php, faire les vérification et l'insertion en base de donnée
C'est le point 2 qui me pose problème. Comment je fait pour "afficher-générer" le input #address (non pas "adresse")?
En fait tu n'as pas besoin de le générer ni de l'afficher, tu as juste besoin de récupérer une chaine de caractères qui contienne adresse, ville, code postal, etc. En gros, traduire cette ligne la

$address = $adresse.', '.$city.', '.$prov.', '.$country;


En js. Ça donne quelque chose du genre

var userinput = $('#addresse').val()+', '+$('#city').val()+ etc...;
pffff. ba non j'y arrive pas...

Voici où j'en suis:
//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();
	var userinput = $('#addresse').val()+', '+$('#city').val()+', '+$('#prov').val()+', '+$('#country').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 />");
		  //$('#geocode-result').append("<input name='lat' id='lat' type='text' value=" + olat + " size='30' /><br><input name='lng' id='lng' type='text' value=" + olng + " size='30' />");
		  $('#lat').val(olat);
		  $('#lng').val(olng);

        } else {
          //Unable to geocode
          alert('ERROR! Unable to geocode address');
        }
      });

  });
});


<?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'];
				
	$address = $adresse.', '.$city.', '.$prov.', '.$country;
	$lat = $_POST['lat'];
	$lng = $_POST['lng'];
                        
	$etat_verif = '--État--';
	$country_verif = '--Pays--';
	$prov_verif = '--Province--';
	
	//Vérification si le champs adresse est remplie
	if (empty($adresse)){
		echo "<p align=\"center\">Veuillez entrer une adresse</p>";
		//Vérification si un etat a été choisi
		if ($etat == $etat_verif){
			echo "<p align=\"center\">Le magasin est-il actif?</p>";
		}
	}
	else{
						
		$result = mysqli_query($config, 'INSERT INTO dealer(site, etat, name, lat, lng, address, city, postal, state, country, phone, cell, free, fax, email, web) VALUES("'.$site.'","'.$etat.'","'.$name.'","'.$lat.'","'.$lng.'","'.$adresse.'","'.$city.'","'.$postal.'","'.$prov.'","'.$country.'","'.$phone.'","'.$cell.'","'.$free.'","'.$fax.'","'.$email.'","'.$web.'")') or die("78 - ".mysqli_error());
		echo '<ul class="alert">
				<li><span>Site:</span> '.$site.'</li>
				<li><span>&Eacute;tat:</span> '.$etat.'</li>
				<li><span>Magasin:</span> '.$name.'</li>
				<li><span>Adresse:</span> '.$adresse.'</li>
				<li><span>Ville:</span> '.$city.'</li>
				<li><span>Province:</span> '.$prov.'</li>
				<li><span>CP:</span> '.$postal.'</li>
				<li><span>Pays:</span> '.$country.'</li>
				<li><span>Tel:</span> '.$phone.'</li>
				<li><span>Cell:</span> '.$cell.'</li>
				<li><span>Free:</span> '.$free.'</li>
				<li><span>Fax:</span> '.$fax.'</li>
				<li><span>Mail:</span> '.$email.'</li>
				<li><span>Web:</span> '.$web.'</li>
				<li><span>Lat:</span> '.$lat.'</li>
				<li><span>Lng:</span> '.$lng.'</li>
			</ul>';
	}
}
		?>
	<form action="ajout.php" method="post" name="form"  id="user-location">
		<fieldset>
			<legend class="gradient-gray">Ajouter un nouveau d&eacute;taillants</legend>
            <p><label for="site">Site:&nbsp;</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">&Eacute;tat:&nbsp;</label>
              <select name="etat" id="etat">
                	<option selected="selected">-- &Eacute;tat --</option>
                    <option value="1">Actif</option>
                    <option value="0">Inactif</option>
                </select></p>
            <p><label for="name">Magasin:&nbsp;</label>
            	<input name="name" id="name" type="text" size="30" /></p>
            <p><label for="adresse">Adresse:&nbsp;</label>
            	<textarea name="adresse" id="adresse" cols="37" rows="2"></textarea></p>
            <p><label for="city">Ville:&nbsp;</label>
            	<input name="city" id="city" type="text" size="30" /></p>
          
            <p><input name="lat" id="lat" type="text" size="30" /></p>
            <p><input name="lng" id="lng" type="text" size="30" /></p>
          <p><label for="postal">Code postal:&nbsp;</label>
       	  <input name="postal" id="postal" type="text" size="30" /></p>
            <p><label for="country">Pays:&nbsp;</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:&nbsp;</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&eacute;l&eacute;phone:&nbsp;</label>
                    <input name="phone" id="phone" type="text" size="30" /></p>
                <p><label for="cell">Cell:&nbsp;</label>
                    <input name="cell" id="cell" type="text" size="30" /></p>
                <p><label for="free">Free:&nbsp;</label>
                    <input name="free" id="free" type="text" size="30" /></p>
                <p><label for="fax">Fax:&nbsp;</label>
                    <input name="fax" id="fax" type="text" size="30" /></p>
                <p><label for="email">Mail:&nbsp;</label>
                    <input name="email" id="email" type="text" size="30" /></p>
                <p><label for="web">Site Web:&nbsp;</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 (14 Aug 2013 - 17:28)
La pour le coup, ça à l'air plutôt juste. Qu'est ce qui ne fonctionne pas exactement? Est-ce que le code js pour le submit est appelé? Est-ce que le user_input est bien calculé? Est-ce que le geocoding renvois des données?

(sinon, la page est en ligne quelque part?)
Les données sont bien entré, mis à part le geocoding...
Il s'agit d'une page de gestion de mon site, donc non pas disponible à tous.

Anyway... j'ai fait appel à un programmeur vue l'urgence du projet (date limite demain) et que je ne m'en sortait pas assez rapidement.

Merci quand même pour ton aide.