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

Langage PHP Discussion :

Envoi d'un formulaire par e-mail


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 76
    Points : 45
    Points
    45
    Par défaut Envoi d'un formulaire par e-mail
    Bonjour
    Je teste pour la première fois la récupération d'un formulaire et son envoi par mail. Je pense avoir reproduit fidèlement les exemples trouvés sur le net mais quelque chose a dû m'échapper.
    Voici le code de la page php :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    <?php 
    // DECLARATION DES VARIABLES 
    	$destinataire = "petch@free.fr";
    	$sujet = "Formulaire de contact";
    	setlocale (LC_TIME, 'fr_FR','fra');
    	$aujourdhui = strftime("%A %d %B %Y %T %H:%M:%S"); 
    	$retour = "";
     
    // HEADERS DU MAIL 
        $entete = "MIME-version: 1.0 \n\r";
        $entete .= "Content-Type: text/html charset=ISO-8859-15 \n\r"; 
        $entete .= "From: $_POST[mail] \n\r";
        $entete .= "To: petch@free.fr \n\r";	
        $entete .= "Cc: petch@free.fr \n\r"; 
     
    // MESSAGE HTML 
        $message="
    	<html> 
    		<head> 
    			<title>Message enregistré le $aujourdhui</title> 
    		</head> 
    		<body>
    			<p>Nom : $_POST[nom]<br /></p>
    			<p>Prénom : $_post[prenom]<br /></p>
    			<p>Adresse : $_post[adresse1]<br /></p>
    			<p>Email : $_post[mail]<br /></p>
    			<p>Message :<br /> $_post[message]</p>				
    		</body> 
    	</html>";
     
    // ENVOI DU MAIL 
        if (mail($destinataire, $sujet, $message, $entete)) 
    		{ 
    		echo 'Le mail a été envoyé';
    		} 
        else 
    		{ 
    		echo 'Le mail n\'a pu être envoyé'; 
    		} 
    ?>
    Le mail est bien envoyé mais :
    1. dans le mail, le destinataire "A:" contient "undisclosed-recipients"
    2. je retrouve tous les éléments ("To:", "Cc:", "Content-Type", ...) dans le corps du mail et leurs contenus sont corrects
    3. le message reproduit exactement le code html (balises html, nom des variables) au lieu d'être interprété

    Je dois avoir raté quelque chose, mais quoi ???
    Merci pour votre aide

  2. #2
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Hello

    Citation Envoyé par Papapetch Voir le message
    1. dans le mail, le destinataire "A:" contient "undisclosed-recipients"
    2. je retrouve tous les éléments ("To:", "Cc:", "Content-Type", ...) dans le corps du mail et leurs contenus sont corrects
    3. le message reproduit exactement le code html (balises html, nom des variables) au lieu d'être interprété
    Pour le 1er : enlève voir dans ton $entete la ligne Cc : tu l'envois en même temps à To et à Cc (qui est la même adresse), peut être que ça vient de là...

    Pour le 3eme : tu lis ton mail où ? Dans le webmail de free ??? celui ci n'interprete pas les balises html, essaye de récupérer ton mail à partir du webmail de free vers outlook sur ton ordi, là le problème devrait être réglé...
    Vous souhaitez participer à la rubrique (X)HTML/CSS, contactez moi.
    débutez avec les CSS
    Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
    Votez pour les messages qui vous ont aidés...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 76
    Points : 45
    Points
    45
    Par défaut
    Merci pour ces info
    J'ai enlevé le Cc: et même résultat pour le champ destinataire du mail = "undisclosed-recipients"
    Précision : j'utilise Outlook pour recevoir ces mails

  4. #4
    Membre averti Avatar de makmaoui
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2007
    Messages : 283
    Points : 368
    Points
    368
    Par défaut
    Bonjour,

    en php le nom des variables est sensible à la casse tu utilises $_post au lieu de $_POST dans le corps de ton email. Pour le souci du destinataire vérifie bien que la variable $_POST[mail] n'est pas vide, tu peux faire un print_r($_POST) pour vérifier cela.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 76
    Points : 45
    Points
    45
    Par défaut
    En effet, c'est mieux comme ça mais je reçois toujours les balise html dans le mail :

    <html>
    <head>
    <title>Message enregistré le dimanche 16 mars 2008 16:16:49</title>
    </head>
    <body>
    <p>Nom : Papapetch<br /></p>
    <p>Prénom : g<br /></p>

  6. #6
    Membre averti Avatar de makmaoui
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2007
    Messages : 283
    Points : 368
    Points
    368
    Par défaut
    Essaye avec ceci (j'ai ajouté un ";" entre le format et le charset) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $entete .= "Content-Type: text/html; charset=ISO-8859-15 \n\r";

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 76
    Points : 45
    Points
    45
    Par défaut
    J'ai le même résultat

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 76
    Points : 45
    Points
    45
    Par défaut
    Une précision : pour ces tests, j'utilise les pages perso de Free.
    Est-ce que Free impose des restrictions pour l'envoi de mails en html ?
    Faut-il un paramètrage particulier ?

  9. #9
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Voici le code (qui fonctionne) que j'utilise chez free :

    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
    25
    26
    $message = "<div style=\"background:silver\"><span style=\"font-weight:bold\">Expediteur du message :</span> $nom_contact_protege $prenom_contact_protege</div>\n";
    $message .= "\n";
    $message .= "<span style=\"font-weight:bold\">Objet du message :</span> $objet_protege\n";
    $message .= "\n";
    $message .= "<div style=\"background:silver\"><span style=\"font-weight:bold\">Adresse e-mail de l'expéditeur :</span> $mail_protege</div>\n";
    $message .= "\n";
    $message .= "<span style=\"font-weight:bold\">Le message a t'il un numero d'annonce :</span> $num_id_annonce_protege\n";
    $message .= "\n";
    $message .= "<div style=\"background:silver\"><span style=\"font-weight:bold\">Adresse d'expédition :</span> $url_pge_protege</div>\n";
    $message .= "\n";
    $message .= "<div style=\"background:silver\"><span style=\"font-weight:bold\">Corps du message :</span>\n";
    $message .= "<div style=\"border:solid 1px black\">$commentaires_protege</div></div>\n";
     
    //				En-têtes					
    $headers  = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $headers .= "From: <$mail>\r\n";
    $headers .= "Reply-To: $mail\r\n";
    $headers .= "Delivered-to: $destinataire\r\n";
    $headers .= "X-Priority: 3\r\n";
     
    if (mail($destinataire, $objet, $message, $headers)) {
       $mailenv = "Votre message a bien été envoyé";
    } else {
      $mailenv = "Votre message n'a pas pu être envoyé car une erreur inconnue s'est produite.";
    }
    Il n'y a pas de restriction chez free à ma connaissance dans ce domaine (sauf le fait que son webmail n'affiche pas les mails en html)...
    Vous souhaitez participer à la rubrique (X)HTML/CSS, contactez moi.
    débutez avec les CSS
    Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
    Votez pour les messages qui vous ont aidés...

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 76
    Points : 45
    Points
    45
    Par défaut
    Bonjour 12monkeys
    J'ai repris le code que tu m'as indiqué mais les résultats ne sont pas exactement comme je le voudrais. Les \n ne sont pas pris en compte donc pas de retour à la ligne. Par contre la modification de la police fonctionne. Voici ce que ça donne :
    Message enregistré le lundi 17 mars 2008 18:16:09 Nom : htmlentities(Papapetch) Prénom : Adresse : conflans Email : pecth@free.fr Arrivée : 15[0] / 06[0] / 2008[0] Départ : 15[1] / 06[1] / 2008[1]
    Et voici mon code :
    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
     
    // HEADERS DU MAIL 
        $entete = "MIME-version: 1.0 \r\n";
    	$entete .= "Content-type: text/html; charset=iso-8859-1 \r\n"; 
    	$entete .= "From: $_POST[mail] \r\n";
     
    // MESSAGE HTML 
    	$message = "<div><span style=\"font-weight:bold\">Message enregistré le $aujourdhui</span>\n";
    	$message .= "\n";
    	$message .= "<span style=\"font-weight:bold\">Nom : </span> htmlentities($_POST[nom])\n";
    	$message .= "\n";
    	$message .= "<span style=\"font-weight:bold\">Prénom : </span> $_POST[prenom]\n";
    	$message .= "\n";
    	$message .= "<span style=\"font-weight:bold\">Adresse : </span> $_POST[adresse1]\n";
    	$message .= "\n";
    	$message .= "<span style=\"font-weight:bold\">Email : </span> $_POST[mail]\n";
    	$message .= "\n";
    	$message .= "<span style=\"font-weight:bold\">Arrivée : </span> $_POST[jour][0] / $_POST[mois][0] / $_POST[annee][0]\n";
    	$message .= "\n";	
    	$message .= "<span style=\"font-weight:bold\">Départ : </span> $_POST[jour][1] / $_POST[mois][1] / $_POST[annee][1]\n";
    	$message .= "\n";
    etc ...
    Il y a d'autres erreurs (htmlentities sans doute mal utilisé, problème de récupération des dates) mais je verrai ça dans un deuxième temps.

    As-tu le même résultat avec ton code ?

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 76
    Points : 45
    Points
    45
    Par défaut
    J'ai remplacé les \n par des <br /> et ça marche
    Merci pour ton aide

  12. #12
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Citation Envoyé par Papapetch Voir le message
    J'ai remplacé les \n par des <br /> et ça marche
    Merci pour ton aide
    Attention \n et <br> ne sont pas la même chose : le \n est un retour à la ligne mais dans le code, le br est un retour à la ligne lors de l'affichage dans le navigateur...

    Exemple :

    affichera dans le code source :

    ligne 1
    ligne 2
    et ceci à l'affichage :

    ligne 1 ligne 2
    Si tu veux en plus un retour à la ligne lors de l'affichage avec le navigateur, tu met "\n<br>".

    Mais si tout marche
    Vous souhaitez participer à la rubrique (X)HTML/CSS, contactez moi.
    débutez avec les CSS
    Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
    Votez pour les messages qui vous ont aidés...

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 76
    Points : 45
    Points
    45
    Par défaut
    Tout marche, oui et non
    Il subsiste quelques problèmes. En premier lieu, je ne parvient pas à récupérer le contenu d'un textarea.
    Le code html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    			<label for="form_message">Votre message : </label>
    			<textarea name="form_message" rows="10" cols="100" name="message"></textarea>
    et le code php (j'ai ajouté un echo "pour voir", mais je ne vois toujours rien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    	echo "$_POST[message]";
    	$message = "<div><span style=\"font-weight:bold\">Message enregistré le $aujourdhui</span><br />";
    	$message .= "<span style=\"font-weight:bold\">Nom : </span> $_POST[nom]<br />";
    	$message .= "<span style=\"font-weight:bold\">Prénom : </span> $_POST[prenom]<br />";
    	$message .= "<span style=\"font-weight:bold\">Adresse : </span> $_POST[adresse1]<br />";
    	$message .=	"$_POST[adresse2]<br />";
    	$message .=	"$_POST[adresse3]<br />";
    	$message .=	"$_POST[adresse4]<br />";
    	$message .= "<span style=\"font-weight:bold\">Email : </span> $_POST[mail]<br />";
    	$message .= "<span style=\"font-weight:bold\">Arrivée : </span> $_POST[jour][0] / $_POST[mois][0] / $_POST[annee][0]<br />";
    	$message .= "<span style=\"font-weight:bold\">Départ : </span> $_POST[jour][1] / $_POST[mois][1] / $_POST[annee][1]<br />";
    	$message .= "<span style=\"font-weight:bold\">Message : </span><br /> $_POST[message]";
    	$message .= "</div>";
    Deuxième problème. J'ai deux dates définies de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
            <p>
                <label for="form_arrivee">Date d'arrivée : </label>
                <input type="text" id="form_arrivee" class="input_jour_mois" name="jour" value="jj" />
                <input type="text" class="input_jour_mois" name="mois" value="mm" />
                <input type="text" class="input_annee" name="annee" value="aaaa" />
            </p>
            <p>
                <label for="form_depart">Date de départ : </label>
                <input type="text" id="form_depart" class="input_jour_mois" name="jour" value="jj" />
                <input type="text" class="input_jour_mois" name="mois" value="mm" />
                <input type="text" class="input_annee" name="annee" value="aaaa" />
            </p>
    On retrouve les mêmes "name" dans les deux dates. Comment les récupérer pour les afficher dans le mail comme cela :
    Arrivée : 15 / 06 / 2008
    Départ : 15 / 06 / 2008
    Il faudrait que je puisse indicer $_POST[jour] mais je ne sais pas si c'est possible et je n'en connais pas la syntaxe (voir un essai qui ne fonctionne pas dans le code ci-dessus).

    As-tu une idée ?

  14. #14
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Pour ton textarea tu as deux name, il n'en faut qu'un seul (je ne sais pas si c'est de là que viens le problème...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <textarea name="form_message" rows="10" cols="100" name="message"></textarea>
    mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <textarea name="form_message" rows="10" cols="100"></textarea>
    De même pour tes dates, pourquoi ne pas utiliser des name différents :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
            <p>
                <label for="form_arrivee">Date d'arrivée : </label>
                <input type="text" id="form_arrivee" class="input_jour_mois" name="jour_arrivee" value="jj" />
                <input type="text" class="input_jour_mois" name="mois_arrivee" value="mm" />
                <input type="text" class="input_annee" name="annee_arrivee" value="aaaa" />
            </p>
            <p>
                <label for="form_depart">Date de départ : </label>
                <input type="text" id="form_depart" class="input_jour_mois" name="jour_depart" value="jj" />
                <input type="text" class="input_jour_mois" name="mois_depart" value="mm" />
                <input type="text" class="input_annee" name="annee_depart" value="aaaa" />
            </p>
    Vous souhaitez participer à la rubrique (X)HTML/CSS, contactez moi.
    débutez avec les CSS
    Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
    Votez pour les messages qui vous ont aidés...

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 76
    Points : 45
    Points
    45
    Par défaut
    Pour le textarea, c'est bien ça : il faut un "id" à la place du premier "name". Merci

    Par contre, les names identiques dans les dates sont bien utiles pour les contrôles en javascript car ça me permet de récupérer leurs valeur de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jour = document.getElementsByName("jour")[i].value
    Est-ce qu'il existe une syntaxe équivalente en php ?

  16. #16
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Tu peut éventuellement essayer en plaçant tes valeurs dans un tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="text" id="form_arrivee" class="input_jour_mois" name="jour[]" value="jj" />
    <input type="text" class="input_jour_mois" name="mois[]" value="mm" />
    <input type="text" class="input_annee" name="annee[]" value="aaaa" />
    Puis pour récupérer les valeurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo $_POST['jour'][0];
    echo $_POST['jour'][1];
    echo $_POST['mois'][0];
    ...
    Mais est ce que ça fonctionnera toujours au niveau du javascript ?
    Vous souhaitez participer à la rubrique (X)HTML/CSS, contactez moi.
    débutez avec les CSS
    Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
    Votez pour les messages qui vous ont aidés...

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 76
    Points : 45
    Points
    45
    Par défaut
    J'ai modifié les noms des inputs :
    ... name="jour[]" ...
    Mais du coup, c'est le javascript qui ne fonctionne plus ...

  18. #18
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    M'en doutais

    Tu peux toujours utiliser 2 names différents sur tes dates et faire tes vérifications javascript sur les 2 noms ?
    Vous souhaitez participer à la rubrique (X)HTML/CSS, contactez moi.
    débutez avec les CSS
    Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
    Votez pour les messages qui vous ont aidés...

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 76
    Points : 45
    Points
    45
    Par défaut
    En effet c'est une solution

    Ça n'a peut être rien à voir mais pour des radio-boutons et pour des cases à cocher on a bien plusieurs input qui ont le même name.
    Il n'y a pas une solution qui pourrait s'inspirer du traitement de ces types de champs ?

  20. #20
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Citation Envoyé par Papapetch Voir le message
    En effet c'est une solution

    Ça n'a peut être rien à voir mais pour des radio-boutons et pour des cases à cocher on a bien plusieurs input qui ont le même name.
    Il n'y a pas une solution qui pourrait s'inspirer du traitement de ces types de champs ?
    Ben si ça a à voir, l'exemple des tableaux (utilisant [] ) est inspiré d'un exemple de checkbox. Bon je te préviens je n'y connais rien en javascript , j'avais trouvé ceci dans la faq voici le script que j'utilise pour des checkbox et qui fonctionne, tu peut t'en inspirer :

    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
    25
    26
    <script language="JavaScript" type="text/javascript"><!--//
    function changement()
    {
    if (document.getElementById('radioaselect').checked)
       {
      var choixcase = document.getElementsByName('chkbxsel[]');
          for (var i=0 ; i<choixcase.length ; i++)
             choixcase[i].disabled=false;
       }
    else
       {
          var choixcase = document.getElementsByName('chkbxsel[]');
          for (var i=0 ; i<choixcase.length ; i++)
             choixcase[i].disabled=true;
       }
    }
    //--></script>
     
    <input type="radio" name="choix" value="1" onclick="javascript:changement()" <?php if ($choix_info == 1) { echo 'checked'; } ?>>Toutes vos informations personnelles sont publiées.<br>
    <input type="radio" name="choix" value="2" onclick="javascript:changement()" <?php if ($choix_info == 2) { echo 'checked'; } ?>>Aucune de vos informations personnelles n'est publiée.<br>
    <input type="radio" name="choix" value="3" id="radioaselect" onclick="javascript:changement()" <?php if ($choix_info == 3) { echo 'checked'; } ?>>Choisir les informations a publier.<br>
    <p>
      <input type="checkbox" name="chkbxsel[]" value="1" <?php if (($choix_info == 1) or ($choix_info == 2) or (empty($choix_info))) { echo 'disabled'; } if (($choix_info == 3) and ($choix_info1 == 1)) { echo 'checked'; } ?>>Vos noms et prénoms sont publiés.<br>
      <input type="checkbox" name="chkbxsel[]" value="2" <?php if (($choix_info == 1) or ($choix_info == 2) or (empty($choix_info))) { echo 'disabled'; } if (($choix_info == 3) and ($choix_info2 == 1)) { echo 'checked'; } ?>>Votre adresse e-mail est publiée.<br>
      <input type="checkbox" name="chkbxsel[]" value="3" <?php if (($choix_info == 1) or ($choix_info == 2) or (empty($choix_info))) { echo 'disabled'; } if (($choix_info == 3) and ($choix_info3 == 1)) { echo 'checked'; } ?>>Votre numéro de téléphone est publié.<br>
    </p>
    Vous souhaitez participer à la rubrique (X)HTML/CSS, contactez moi.
    débutez avec les CSS
    Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
    Votez pour les messages qui vous ont aidés...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Envoi d'un formulaire par e-mail
    Par F2 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 22/01/2010, 10h36
  2. Envoi d'un formulaire par e-mail
    Par Windaube dans le forum Langage
    Réponses: 2
    Dernier message: 09/08/2007, 10h03
  3. Envoi d'un formulaire par mail
    Par Leimi dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 02/08/2007, 16h59
  4. envois d'un formulaire par e-mail
    Par adenak dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/03/2007, 16h28
  5. [Mail] Envoi date (datetime) formulaire par email
    Par loady dans le forum Langage
    Réponses: 6
    Dernier message: 13/08/2006, 22h30

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