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 :

[PHP/HTML] Mon formulaire n'envoi pas les bonnes données


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 52
    Points : 34
    Points
    34
    Par défaut [PHP/HTML] Mon formulaire n'envoi pas les bonnes données
    Bonjour,

    souvent en informatique, un problème réglé en soulève un autre :'(

    Pour mon cas c'est un souci de formulaire. Notamment avec les

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <option name="" value="">
    Ce qui se passe dans mon souci c'est que pour l'attribut value je lui ai donné une valeur a deux decimale. Et l'attribut name le nom d'un objet.

    Mon formulaire additionne bien toutes les valeurs mais lors de l'envoi du mail au lieu de me donner le nom de la pièce choisi, il me donne le prix... Ce qui n'est pas très pratique :'(

    Voici mon code html concernant mon formulaire (il a ete volontairement tronqué):

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    <form method="post" action="send_devis.php">
    <p>
        <label for="boitier" id="label_ass">Boitier</label>
        <select name="boitier" id="prix">
    	<option name="aucun" value="0" selected>Aucun</option>
    	<option name="boitier" value="42.77">Antec VSK-2000 - Boitier moyen tour [42.77]</option>
    	<option name="Zalman_Z9Plus" value="50.92">Zalman Z9 Plus - Boîtier Moyen Tour - Noir [50.92]</option>
        </select>
    </p>
     
    <p>
        <label for="alim" id="label_ass">Alimentation</label>
        <select name="alim" id="prix">
    	<option name="aucun" value="0" selected>Aucun</option>
    	<option name="Toughpower_XT_675W" value="117.07">Thermaltake Toughpower XT 675W [117.07]</option>
    	<option name="TruePower_New_650" value="81.43">Antec TruePower New 650 80PLUS [81.43]</option>
        </select>
    </p>
     
    <p id="label">Montant du devis : 
        <input type="texte" name="total_devis_ttc" id="result" size="9" maxlength="8" readonly/> € TTC
        <input type="button" value="Calculer" onclick="cal();" />
    </p>
     
    <p id="label_4">Adresse mail :      
        <input id="label_mail" type="email" name="mail" placeholder="Votre adresse mail..."/>
    </p>
     
    <p id="label_4">Nom :     
        <input id="label_nom" type="text" name="nom" placeholder="Nom..."/>
    </p>
     
    <p id="label_4">Prénom(s) :    
        <input id="label_prenom" type="text" name="prenom" placeholder="Prénom(s)..."/>
    </p>
     
    <p id="label_2">Numero de tel. :
        <input id="label_fixe" type="number" name="tel_fixe" placeholder="Fixe..."/>
    </p>
     
    <p id="label_portable">
        <input type="number" name="tel_portable" placeholder="Portable..."/>
    </p>
     
    <p id="label_message">
        <textarea name="message" id="message" name="msg" placeholder="Veuillez saisir vos commentaires ici..."></textarea>
    </p>
     
    <p id="commander">
        <input type="submit" value="Envoyer" />
    </p>
     
    </form>
    puis le code source de la page de traitement 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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    <?php 
     
    $to = 'sysdevpc@free.fr';
    $formSujet = $POST['mail'];
    $formMail = $_POST['mail']; 
    $formNom = $_POST['nom'];
    $formPrenom = $_POST['prenom'];
    $formFixe = $_POST['tel_fixe'];
    $formPortable = $_POST['tel_portable'];
    $formTotal_TTC = $_POST['total_devis_ttc'];
    $formCommentaire = $_POST['msg']; 
    $formBoitier = $_POST['boitier'];
    $formAlim = $_POST['alim'];
    $formCm = $_POST['cm'];
    $formProc = $_POST['proc'];
    $formVentirad = $_POST['ventirad'];
    $formWatercooling = $_POST['watercooling'];
    $formCarte_graphique = $_POST['carte_graphique'];
    $formWatercooling_cg = $_POST['watercooling_cg'];
    $formRam = $_POST['ram'];
    $formDd_princ = $_POST['dd_princ'];
    $formDd_ssd = $_POST['dd_ssd'];
    $formDd_sup_1 = $_POST['dd_sup_1'];
    $formDd_sup_2 = $_POST['dd_sup_2'];
    $formCarte_controleur = $_POST['carte_controleur'];
    $formLecteur_cd = $_POST['lecteur_cd'];
    $formGraveur_cd = $_POST['graveur_cd'];
    $formLecteur_dvd = $_POST['lecteur_dvd'];
    $formGraveur_dvd = $_POST['graveur_dvd'];
    $formCarte_son = $_POST['carte_son'];
    $formEnceintes = $_POST['enceintes'];
    $formMoniteur_lcd = $_POST['moniteur_lcd'];
    $formClavier = $_POST['clavier'];
    $formSouris = $_POST['souris'];
    $formCarte_wifi = $_POST['carte_wifi'];
    $formSysteme = $_POST['systeme'];
    $formMontage = $_POST['montage'];
     
    $formCommentaire = htmlentities($formCommentaire); 
     
    $message = "$formNom $formPrenom vous contact au sujet d'un devis de $formTotal_TTC euros.\n \n Voici les pieces désirées : \n \n Boitier : $formBoitier. \n \n Alimentation : $formAlim. \n \n Carte mère : $formCm. \n \n Processeur : $formProc. \n \n Ventilateur : $formVentirad. \n \n Watercooling Processeur : $formWatercooling. \n \n Carte Graphique : $formCarte_graphique. \n \n Watercooling Carte Graphique : $formWatercooling_cg. \n \n Mémoire : $formRam. \n \n Disque dur principale : $formDd_princ. \n \n Disque dur SSD : $formDd_ssd. \n \n Disque dur supplementaire #1 : $formDd_sup_1. \n \n Disque dur supplementaire #2 : $formDd_sup_2. \n \n Carte contrôleur : $formCarte_controleur. \n \n Lecteur Cd : $formLecteur_cd. \n \n Graveur Cd : $formGraveur_cd. \n \n Lecteur Dvd : $formLecteur_dvd. \n \n Graveur Dvd : $formGraveur_dvd. \n \n Carte son : $formCarte_son. \n \n Enceintes : $formEnceintes. \n \n Moniteur LCD : $formMoniteur_lcd. \n \n Clavier : $formClavier. \n \n Souris : $formSouris. \n \n Carte réseau sans fil : $formCarte_wifi. \n \n Système d'exploitation : $formSysteme. \n \n Montage : $formMontage. \n \n Le client souhaite également ajouter ceci :\n $formCommentaire. \n \n Il sera joignable par telephone au $formFixe ou $formPortable. \n Ou par mail au : $formMail";
     
    $message = wordwrap($message, 70);
     
    mail($to,$formSujet,$message);
     
    function redirect($lien, $temps=1)
        {     
           //On vérifie si aucun en-tête n'a déjà été envoyé    
           if (!headers_sent())
           {
             header("refresh: $temps;url=$lien");
             exit;
           }
           else
           {
             echo '<meta http-equiv="refresh" content="',$temps,';url=',$lien,'">';
           }
        }
     
    //puis le code de ta page PHP et enfin, en bas de page, la fonction pour effectuer la redirection automatiquement
     
    redirect('Devis.html', '5'); // le premier paramètre correspondant à ta page et le second au nombre de seconde avant la redirection
    echo "redirection automatique en cours...";
     
    ?>
    Merci de votre aide

  2. #2
    Membre actif Avatar de hazamor
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2008
    Messages : 179
    Points : 206
    Points
    206
    Par défaut
    La balise OPTION n'a pas un attribut 'name'. La valeur envoyé pour la balise select c'est le contenu de l'attribut 'value' de l'option selectionné.

    Dans votre cas vous devez mettre le nom de la pièce dans l'attribut value.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 52
    Points : 34
    Points
    34
    Par défaut
    Bonjour et merci de votre reponse,

    Le souci etant que si j'ecris le nom de la piece dans l'attribue value, la fonction calc() risque de ne plus marcher non ?

    Voici le javascript de ma fonction calc()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function cal()
    {
       var select  = document.getElementsByTagName("select"),
          current, result=0, i=0;
     
     
    for(i=0; i<select.length;i++)
    {
          current = select[i].options[select[i].selectedIndex].value
          result+=parseFloat(current);
    }
          document.getElementById("result").value=result.toFixed(2);
    }
    Peut etre qu'un attribut tel que prix="" dans les options ferait l'affaire non ?

  4. #4
    Membre actif Avatar de hazamor
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2008
    Messages : 179
    Points : 206
    Points
    206
    Par défaut
    Vous pouvez affectez à l'option une valeur sous format json, exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="{'name':'Zalman_Z9Plus','prix':'50.92'}">
    et donc avec le js ça sera:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
    texte = select[i].options[select[i].selectedIndex].value
    texte= eval('(' + texte + ')');
    current=texte.prix;
    ....
    et avec le php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $formAlim = json_decode($_POST['alim']);
    echo "le prix=" . $formAlim->prix;

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 52
    Points : 34
    Points
    34
    Par défaut
    j'ai du mal a saisir la chose :'(

    Ce que j'aimerai c'est pouvoir afficher dans les options de la liste deroulante cela

    nom de l'article [prix €]

    est ce que votre solutions le fera ?

    Je ne comprend pas non plus comment l'integrer. Je me suis mis au php depuis peux

Discussions similaires

  1. [AC-2002] Formulaire ne passe pas les bonnes données à une requête
    Par badge234 dans le forum Access
    Réponses: 3
    Dernier message: 01/07/2015, 18h19
  2. [MySQL-5.5] LEFT JOIN avec MAX qui ne me retourne pas les bonnes données
    Par Gloup dans le forum Requêtes
    Réponses: 4
    Dernier message: 05/05/2014, 17h26
  3. Mon formulaire n'envoie pas le mail
    Par Prodiguy dans le forum Langage
    Réponses: 2
    Dernier message: 29/05/2013, 11h08
  4. Le formulaire n'envoie pas les erreurs
    Par isitien dans le forum jQuery
    Réponses: 21
    Dernier message: 09/03/2011, 13h55
  5. Formulaire n'envoie pas les données
    Par vladock dans le forum Langage
    Réponses: 7
    Dernier message: 04/08/2008, 13h24

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