soumettre un formulaire

Mammouth du PHP | 536 Messages

14 janv. 2008, 12:58

Bonjour tout le monde,
tout d'abord, bonne année.

Voilà je vous explique mon problème, je souhaiterais créé un lien sur un formulaire qui permet de récupérer des coordonnées gps (que j'utiliserai par la suite avec google maps) à partir de la valeur de certains champs de mon formulaire.

Donc j'ai fait ainsi (ces deux bout de code se trouvent dans la même page
<input name="coord_gps_perso" type="text" class="input_texte" id="coord_gps_perso" value="<? echo htmlentities(stripslashes($coord_gps_perso),ENT_QUOTES); ?>" size="40">&nbsp;
                                          <a href="?find_coord&idp=<?=$idp?>" style="color: #626F7E;">Récupérer coordonnées GPS à partir de l'adresse</a>

...
<?
$tab = mysql_fetch_array($requete);
$adresse_perso = $tab[adresse_perso];
$ville = $tab[ville_perso];

// ... 

if(isset($_GET['find_coord'])) { 
    $rue = $adresse_perso;
    $cp = $cp_perso;
    $ville = $ville_perso;
    $rue = str_replace(' ', '+', $rue);
    $adresse = 'http://maps.google.com/maps/geo?q='.$rue.'+'.$cp.'+'.$ville.'+fr&output=csv&key=MA_CLE'; //recuperation de l'adresse web
    $file = fopen($adresse,"r"); //ouverture en lecture
  	while($str = fread($file, 16)){
  		$src.=$str;
  	}
  	fclose($file); //fermeture du fichier
  	$explode =	explode(',',$src);
  	$coord_gps_perso = $explode[2].",".$explode[3];
}
?>
Donc ceci marche, seulement lorsque je modifie un champ (le champ adresse ou le champs ville) de mon formulaire par exemple et je clique sur le lien, le formualire n'est pas soumis et les nouvelles données que l'on vient de saisir ne sont pas considérées. Mon script me récupère alors les coord GPS de l'ancienne valeur inscrite dans la BDD.

Mon problème est que je ne trouve pas de solution pour soumettre mon formulaire avant de chercher coord GPS. Sachant que je dois rechercher les coord uniquement lorsque je clique sur le lien et pas lorsque je clique sur le bouton enregistrer qui permet de soumettre le formulaire.
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

14 janv. 2008, 13:09

Bonjour,

Je ne suis pas sûr d'avoir compris ce que tu veux faire mais si il s'agit seulement de récupérer les coordonnées d'une adresse, Google a déjà pensé à toi en ajoutant cette fonctionnalité dans ses API:
http://code.google.com/apis/maps/docume ... ntGeocoder
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 536 Messages

14 janv. 2008, 13:21

Ce que je veux faire en fait, c'est lorsqu'on clique sur le lien "récupérer coordonnées GPS", je récupère le contenu de la page http://maps.google.com/maps/geo?q=adres ... key=MA_CLE

qui est de cette forme : 200,8,47.318582,5.051636 et dans lequel il y a les coordonénes qui m'itéresse.

Ensuite, ce que je souhaite, c'est afficher ces coordonnées ainsi obtenues dans un champs correspondant de mon formulaire.

Mais mon problème est que si je modifie le champs ville de mon formulaire et que je clique sur ce lien avant de valider mon formulaire et bien les modifications et l'enregistrement de cette nouvelle ville n'ont pas été effectué et la valeur de ce champs de mon formulaire est encore l'ancienne valeur (oui c'est peut être pas très claire).
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

d0m
Mammouth du PHP | 1141 Messages

14 janv. 2008, 13:41

Tu peux pour cela utiliser du javascript.
Tu n'auras pas besoin de valider ton formulaire pour avoir ta page à jour.

Mammouth du PHP | 536 Messages

14 janv. 2008, 13:47

Donc je viens de faire des tests et là ce que j'ai fait marche.
J'ai effectivement utiliser du javascript et ai fait ainsi :

Code : Tout sélectionner

<a href="#" onClick="document.form.submit(); location.href='form.php?find_coord&idp=<?=$idp?>';" style="color: #626F7E;">
au lieu de :

Code : Tout sélectionner

<a href="?find_coord&idp=<?=$idp?>" style="color: #626F7E;">
.

En tout cas, merci pour vos réponses et si vous avez des méthodes ou solutions pour optimisez le truc, je suis preneur.
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!