IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HTML Discussion :

Récupérer les input d'un formulaire pour un mailto


Sujet :

HTML

  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Par défaut Récupérer les input d'un formulaire pour un mailto
    Bonjour,
    J'ai crée mon formulaire de contact, je voudrais que le mailto récupère automatiquement les valeurs entrées dans les input (nom,sujet...) et non que ça soit des valeurs fixes définies dans mon code HTML...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <div id="formulairecontact">
    	<form action="mailto:monmail@mail.com" method="post" name="contact">
    		<p>
    			<label for="nom">Prénom et nom: <span class="required">*</span></label>
    			<input type="text" id="name" name="name" value="" placeholder="Prénom & Nom" required="required" autofocus="autofocus" />
    			<br/>
    			<label for="email">Adresse mail: <span class="required">*</span></label>
    			<input type="email" id="email" name="email" value="" placeholder="adresse@example.com" required="required" />
    			<br/>
    			<label for="telephone">Téléphone: </label>
    			<input type="tel" id="telephone" name="telephone" value="" />
    			<br/>
    			<label for="enquiry">Raison du mail: </label>
    			<select id="raison" name="raison">
    				<option value="avis">Je souhaie donner mon avis</option>
    				<option value="autre">Autre raison...</option>
    			</select>
    			<br/>
    			<label for="message">Message: <span class="required">*</span></label>
    			<textarea id="message" name="message" placeholder="Votre message doit faire plus de 20 caractères..." required="required" data-minlength="20"></textarea>
    		</p>
    		<input type="submit" value="Envoyer" onclick='document.location.href="index.html";'>
    	</form>
    </div>
    Merci de votre aide.

  2. #2
    Membre chevronné
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Septembre 2012
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2012
    Messages : 416
    Par défaut
    Bonjour,

    Tout d'abord, il est nécessaire (mais pas indispensable) de préciser ENCTYPE dans ta balise form afin de "forcer" l'envoi en texte brut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <formAction="mailto:mail@domaine.com" method="POST" enctype="text/plain"
    Pour le reste, j'ai testé ton formulaire et il ajoute bien les données que j'entre dans le corps du mail.

    Il y a par contre, possibilité que ça ne focntionne pas avec tous les navigateurs/cliens emails. Passer la methode de transmission des données à GET peut résoudre certains probleme de compatibilité.

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Par défaut
    Bonsoir,
    J'ai modifié le code, le problème persiste. Tout est entré dans le corps du message. Voici ce que j'obtiens :
    name=prenom
    email=monbmail@gmail.com
    telephone=
    raison=avis
    message=Voici mon message !
    Merci.

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Une petite recherche sur le forum aurait pu te donner ça, par exemple :
    http://www.developpez.net/forums/d35...me-formulaire/

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Par défaut
    Bonjour,
    J'ai réussi effectivement grâce au JavaScript. Voici mon code HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <div id="formulairecontact">
    	<form action="#" onsubmit="temp()" method="post" enctype="text/plain" id="form">
    		<p>
    			<label for="nom">Prénom et nom: </label><span class="required">*</span>
    			<input type="text" id="name" name="Prénom & NOM" value="" placeholder="Prénom & Nom" required="required" autofocus="autofocus" />
    			<br/>
    			<label for="email">Adresse mail: </label><span class="required">*</span>
    			<input type="email" id="email" name="email" value="" placeholder="adresse@example.com" required="required" />
    			<br/>
    			<label for="telephone">Téléphone: </label>
    			<input type="tel" id="telephone" name="Numéro de téléphone" value="" />
    			<br/>
    			<label for="enquiry">Raison du mail: </label>
    			<select id="raison">
    				<option value="Je souhaite donner mon avis">Je souhaie donner mon avis</option>
    				<option value="Autre raison">Autre raison...</option>
    			</select>
    			<br/>
    			<label for="message">Message: <span class="required">*</span></label>
    			<textarea id="message" name="Message" placeholder="Votre message doit faire plus de 20 caractères..." required="required" data-minlength="20"></textarea>
    		</p>
    		<input type="submit" value="Envoyer">
    	</form>
    </div>
    Code JavaScript :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function temp(){
    	document.getElementById('form').action = "mailto:mail@exemple?subject=" + document.getElementById('raison').value;
    }

    Merci.

  6. #6
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Par défaut
    Bonjour,
    je rouvre la discussion car en essayant mon formulaire, je me suis rendu compte qu'il fonctionne sur tous les navigateurs, sauf IE...
    Savez-vous d'où cela peut venir ?
    Merci.

  7. #7
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    "Ca ne marche pas" ne veut rien dire.

    Essaie toujours en mettant ça pour récupérer la valeur du select :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("raison").options[document.getElementById("raison").selectedIndex].value

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Ou plus simplement
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("raison").value


    Ceci dit, le plus simple ne serait-il pas de nommer les champs correctement directement dans le HTML afin de ne pas avoir à faire ce genre de manip en JavaScript ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  9. #9
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Ou plus simplement
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("raison").value
    En fait c'est ce qu'il fait déjà. En l'absence d'informations, je donne des solutions alternatives.

  10. #10
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Par défaut
    Bonsoir,
    voici le code fonctionnel, je précise aussi que si l'on met le caractère '&' dans une chaine de caractère, cela coupe la récupération des informations. Si quelqu'un arrive à m'expliquer pourquoi ...
    Voici le code :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function recuperation()
    {
        document.getElementById('form').action = "mailto:mail@domaine.fr?subject=" + document.getElementById('raison').value + "&body=" + "Prénom et Nom : " + document.getElementById('nom').value + "%0A" +"Téléphone : " + document.getElementById('telephone').value + "%0A" +"Message : " + document.getElementById('message').value;
    }

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 16/01/2020, 14h21
  2. Réponses: 4
    Dernier message: 17/04/2015, 21h26
  3. Réponses: 1
    Dernier message: 03/02/2011, 10h03
  4. Réponses: 6
    Dernier message: 27/08/2009, 13h43
  5. [MySQL] Problème pour récupèrer les champs d'un formulaire qui se trouve dans un while
    Par mademoizel dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 21/03/2008, 14h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo