Problème de récupération d'une variable
ML
-
ML -
ML -
Bonjour, j'espère que quelqu'un pourra m'aider. En fait, j'ai créé une page en html assimilable à un formulaire. Lorsque je clique sur "Envoyer", c'est un fichier php qui se charge de "classer" les informations transmises par le formulaire afin d'envoyer un mail dans ma boîte, pour que je puisse moi-même faire mes statistiques.
Mon problème est le suivant : je voudrais aussi qu'apparaisse dans mon mail la durée de remplissage du formulaire. J'ai alors créé une fonction en javascript me permettant d'afficher (alert) les minutes et secondes, mais je n'arrive pas à "récupérer" ces deux variables dans le fichier php.
Comment puis-je faire ?? Merci beaucoup.
Mon problème est le suivant : je voudrais aussi qu'apparaisse dans mon mail la durée de remplissage du formulaire. J'ai alors créé une fonction en javascript me permettant d'afficher (alert) les minutes et secondes, mais je n'arrive pas à "récupérer" ces deux variables dans le fichier php.
Comment puis-je faire ?? Merci beaucoup.
A voir également:
- Problème de récupération d'une variable
- Récupération de déchets - Guide
- Convertisseur récupération de texte - Guide
- Comment recuperer une video sur youtube - Guide
- Recuperer une conversation whatsapp supprimée - Guide
- Adresse mail de recuperation c'est quoi - Guide
7 réponses
Bonjour,
Pour ce faire, il faut que tu crées dans ton formulaire deux champs cachés :
<input type="hidden" name="minutes" id="minutes" />
<input type="hidden" name="secondes" id="secondes" />
Ensuite, au moment où tu faisais ton "alert", fais plutôt
document.getElementById("minutes").value = #minutes#;
document.getElementById("secondes").value = #secondes#;
(si ton formulaire a un attribut name="truc", tu peux supprimer les "id" des champs cachés, et faire les appels plus simplement :
document.truc.minutes.value = #minutes#;
document.truc.secondes.value = #secondes#;
)
Les valeurs minutes et secondes seront passées de la même façon que le reste de ton formulaire à la page appelée par la bouton de soumission.
Xavier
Pour ce faire, il faut que tu crées dans ton formulaire deux champs cachés :
<input type="hidden" name="minutes" id="minutes" />
<input type="hidden" name="secondes" id="secondes" />
Ensuite, au moment où tu faisais ton "alert", fais plutôt
document.getElementById("minutes").value = #minutes#;
document.getElementById("secondes").value = #secondes#;
(si ton formulaire a un attribut name="truc", tu peux supprimer les "id" des champs cachés, et faire les appels plus simplement :
document.truc.minutes.value = #minutes#;
document.truc.secondes.value = #secondes#;
)
Les valeurs minutes et secondes seront passées de la même façon que le reste de ton formulaire à la page appelée par la bouton de soumission.
Xavier
Merci pour tes conseils Xavier, mais cela ne semble pas fonctionner. Pour essayer d'avancer, je vais mettre les parties les plus "intéressantes" de mon code...
Entre <head> et </head> :
Entre <body> et </body> :
Et enfin, une partie de mon fichier sendmail2.php :
Dans le mail que je reçois, la dernière phrase est alors : "J'ai passé minutes et secondes à remplir ce questionnaire.".
Petite question au passage : est-ce normal que mes "alert" ne s'affichent pas (je les ai essayer sur un ordi avec IE 6, c'est nickel, et chez moi avec IE 7 ou Mozilla 1.5, ça ne s'affiche pas) ?
Merci.
Entre <head> et </head> :
<script language="javascript">
<!--
function heuredebut()
{ debut = new Date();
Start = debut.getTime();
alert("L'ordinateur mémorise l'heure de début...");
}
function calculeheure()
{ var fin = new Date();
var diff = (fin.getTime() - Start)/1000;
var secondeabs = Math.round(diff);
var seconderel = secondeabs % 60;
var minuteabs = Math.round((secondeabs-30)/60);
secondes = "" + ((seconderel > 9) ? seconderel : "0" + seconderel);
minutes = "" + ((minuteabs > 9) ? minuteabs : "0" + minuteabs);
alert("Temps passé : "+minutes+" minutes et "+secondes+" secondes.");
document.formulaire.minutes.value = #minutes#;
document.formulaire.secondes.value = #secondes#;
}
//-->
</script>
Entre <body> et </body> :
<body BACKGROUND="./fondmath.gif">
<script language="javascript">
<!--
heuredebut();
//-->
</script>
(...)
<FORM METHOD="post" action="sendmail2.php" name="formulaire" onsumit="calculeheure()"><div align="center">
<input type="hidden" name="minutes">
<input type="hidden" name="secondes">
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" bordercolorlight="#808080">
(...)
<b><font color="#FF0000" size="5">Une fois cliqué sur "Envoyer", veuillez patienter
un instant pendant l'envoi des données...</font><font size="4"><br>
<br>
</font></b>
<INPUT TYPE="submit" VALUE="Envoyer"></TD></TR>
</TABLE></div>
</FORM>
</body>
Et enfin, une partie de mon fichier sendmail2.php :
<?php
$msg = "";
if ($q17 == "") { $expediteur = "bogosszen@msn.com"; }
else { $expediteur = $q17; }
$destinataire = "bogosszen@msn.com";
$sujet = "Questionnaire sur les TICE";
// Récupération des variables provenant du formulaire
// et création des entrées correspondantes dans le mail qui sera envoyé
(...)
$msg .= "--------------------------------------------------\n\n";
$min = $_POST['minutes'];
$sec = $_POST['secondes'];
$msg .= "J'ai passé $min minutes et $sec secondes à remplir ce questionnaire.";
mail($destinataire, $sujet, $msg, $expediteur);
echo("<HTML><HEAD>");
echo("<TITLE>Message d'envoi des données!</TITLE></HEAD><BODY BACKGROUND=./fondmath.gif>");
echo("<p align=center> </p><p align=center><font size=4 color=#800080><b>Vos réponses ont bien été
enregistrées. Nous vous remercions de votre participation<br>
et vous souhaitons une agréable continuation.</b></font></p>");
echo("<p align=center><span style=letter-spacing: 2px><blink>
<span style=text-decoration: overline><u><font size=7 color=#FF0000>
<strong>MERCI !!!</strong></font></u></span></blink></span></p>");
echo("<p align=center>Vous pouvez maintenant fermer cette fenêtre ou cet onglet.</p></BODY></HTML>");
?>
Dans le mail que je reçois, la dernière phrase est alors : "J'ai passé minutes et secondes à remplir ce questionnaire.".
Petite question au passage : est-ce normal que mes "alert" ne s'affichent pas (je les ai essayer sur un ordi avec IE 6, c'est nickel, et chez moi avec IE 7 ou Mozilla 1.5, ça ne s'affiche pas) ?
Merci.
Oui, évidemment ;)
Désolé, j'aurais dû préciser !
Xavier
secondes = "" + ((seconderel > 9) ? seconderel : "0" + seconderel);
minutes = "" + ((minuteabs > 9) ? minuteabs : "0" + minuteabs);
alert("Temps passé : "+minutes+" minutes et "+secondes+" secondes.");
document.formulaire.minutes.value = #minutes#;
document.formulaire.secondes.value = #secondes#;Quand j'ai écrit ça, c'était sans connaître le nom de tes variables. Il faut remplacer #minutes# par minutes et #secondes# par secondes ;)
Désolé, j'aurais dû préciser !
Xavier
Ok. Maintenant, j'ai la première alerte qui s'affiche (l'ordinateur mémorise l'heure de début...), mais pas la seconde, et le mail n'aboutit plus. Aurais-je encore une autre erreur ?
Désolé, je suis assez débutant, j'ai presque tout appris en un jour, le temps de faire mon formulaire... Merci à toi Xavier.
Désolé, je suis assez débutant, j'ai presque tout appris en un jour, le temps de faire mon formulaire... Merci à toi Xavier.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Désolé, j'ai dû m'absenter. Modification faite, le comportement est presque le même que dans le message précédent : la première alerte s'affiche, mais dès que je clique sur Envoyer, il n'y a que la "page" de remerciements qui s'affiche. Le mail est bien envoyé (mais toujours "J'ai mis minutes et secondes à remplir ce questionnaire."), mais l'alerte ne s'affiche pas...