Bonjour à tous,
j'ai créé un formulaire, prenant en compte plusieurs données et qui permet de calculer le prix final ce formulaire est ensuite récupéré et envoyé par mail a la personne et moi en copie. Seulement j'aimerais bien attribur un numéro de devis a chaque fois que quelqu'un fait une demande. j'imagine donc que je dois passer par une table afin de mémoriser les données et les compter. mais je ne sais pas du tout comment m'y prendre voici mon code actuel :

HTML :

<body>
<form method="post" action="tracts.php">
<select name="format_tracts" id="format_tracts" onchange="calcul()">
  <option value="">Selectionnez le format</option>
  <option value="Format A4">Format A4</option>
  <option value="Format A5">Format A5</option>
 </select>
<br/>

<select name="papier" id="papier" onchange="calcul()">
  <option value="">Selectionnez le papier /m2</option>
  <option value="Papier 80g">Papier 80g</option>
  <option value="Papier 90g">Papier 90g</option>
  <option value="Papier 115g">Papier 115g</option>
  <option value="Papier recyclé 80g">Papier recyclé 80g</option>
 </select>
<br/>
<select name="quantite" id="quantite" onchange="calcul()">
  <option value="">Selectionnez la quantité</option>
  <option value="500 Exemplaires">500 Exemplaires</option>
  <option value="1 000 Exemplaires">1 000 Exemplaires</option>
  <option value="2 500 Exemplaires">2 500 Exemplaires</option>
  <option value="5 000 Exemplaires">5 000 Exemplaires</option>
  <option value="10 000 Exemplaires">10 000 Exemplaires</option>
  <option value="20 000 Exemplaires">20 000 Exemplaires</option>
  <option value="50 000 Exemplaires">50 000 Exemplaires</option>
 </select>
<br/>
<select name="delai" id="delai" onchange="calcul()">
  <option value="">Selectionnez la livraison</option>
  <option value="Livraison économique">Livraison économique</option>
  <option value="Livraison express">Livraison express</option>
  <option value="Livraison urgente">Livraison urgente</option>
</select>

<label for"name">>Nom du candidat:</p></label>
       <input type="text" name="name" id="name"/>
 <br />
<label for"ville">Ville:</p></label>
       <input type="text" name="ville" id="ville"/>
       
 <br />
<label for"emai">Email:</p></label>
       <input type="text" name="email" id="email"/>
       
<br />
<label for"tel">Tél.:</p></label>
       <input type="text" name="tel" id="tel"/>


<input type="submit" value="Send" id="boutons" />

<div id="prix"></div>
<input type="hidden" value="" name="prix" id="prix_send" />
</body>


et la partie php

<?php 
if(isset($_POST) && isset($_POST['format_tracts']) && isset($_POST['papier']) && isset($_POST['quantite']) && isset($_POST['delai']) && isset($_POST['name']) && isset($_POST['ville']) && isset($_POST['email']) && isset($_POST['tel'])){
 extract($_POST);
 if(!empty($format_tracts) && !empty($papier) && !empty($quantite) && !empty($name) && !empty($ville) && !empty($email) && !empty($tel)){
 
           $destinataire=""; 
   $sujet="Demande de devis";
      $msg="Nouvelle demande de devis
   Nom du candidat : $name
   Ville : $ville
   Email : $email
   Tél. : $tel
   Format : $format_tracts
   Papier : $papier
   Quantite : $quantite
   Délai : $delai
   Prix : $prix";
   $entete="From: $email";
   mail($destinataire,$sujet,$msg,$entete);
   echo "Your message has been sent, thank you";
   

          } 
     } 
  
  else{
 
  echo "you have not filled in all fields";
  
  }
  
  
?>


Est-ce qu'il faut envoyer les données dans une table et ensuite elles sont envoyées par mail, ou bien les deux peuvent être faite simultanément ? si oui comment
Modifié par Georgetta (22 May 2014 - 10:14)
Non mais comme il me semblait qu'il fallait passer par là j'en ai créé une, pour ce faire j'ai mit ce code


<?php 
if(isset($_POST) && isset($_POST['format_tracts']) && isset($_POST['papier']) && isset($_POST['quantite']) && isset($_POST['delai']) && isset($_POST['name']) && isset($_POST['ville']) && isset($_POST['email']) && isset($_POST['tel'])){
	extract($_POST);
	if(!empty($format_tracts) && !empty($papier) && !empty($quantite) && !empty($name) && !empty($ville) && !empty($email) && !empty($tel)){
	
          $db = mysql_connect('*****', '****', '****')  or die('Erreur de connexion '.mysql_error());

    mysql_select_db('etrecandidat',$db)  or die('Erreur de selection '.mysql_error()); 
     
    $sql = "INSERT INTO demande_devis(format_tracts, papier, quantite, delai, name, ville, email, tel ) VALUES('$format_tracts','$papier','$quantite','$delai','$name','$ville','$email','$tel')"; 
     
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 

    echo 'Vos infos on été ajoutées.'; 

    mysql_close(); 
			

          } 
     } 
	 
	 else{
	
		echo "you have not filled in all fields";
				}
	 ?>


Mais ensuite je ne comprend pas comment attribuer un numéro a la requête puis renvoyer le tout par mail
Modifié par Georgetta (18 Jul 2013 - 18:20)
Donc :

tu as ta table "demande_devis"

ou se situe le champs numéros de devis (format tracts?) ?
Comment sont identifiés les devis ? date-nombre ?
Modifié par bouuh (18 Jul 2013 - 18:22)
Qu'elle forme/affichage souhaites tu pour le numéros de devis ?
Modifié par bouuh (18 Jul 2013 - 18:26)
La logique que j'adopterai :

Il te faut un numéros de devis différent à chaque fois donc ta table :

demande_devis
Id_Devis
format_tracts
papier
quantite
delai
name
ville
email
tel
annee
NUMERO_DEVIS

avec un numéro de devis en auto-incrémentation

Après tu concatènes annee-NUMERO_DEVIS lorsque tu souhaites te l'envoyer
Modifié par bouuh (18 Jul 2013 - 18:37)
Bon et bien voilà ce que j'ai fait mais j'ai du faire une erreur car cela a fonctionné au premier essais et au deuxième j'ai eu un message disant "Duplicate entry '3' for key 'PRIMARY'"

Voici mon code je ne comprend pas d'où vient l'erreur


<?php 
if(isset($_POST) && isset($_POST['format_tracts']) && isset($_POST['papier']) && isset($_POST['quantite']) && isset($_POST['delai']) && isset($_POST['name']) && isset($_POST['ville']) && isset($_POST['email']) && isset($_POST['tel'])){
	extract($_POST);
	if(!empty($format_tracts) && !empty($papier) && !empty($quantite) && !empty($name) && !empty($ville) && !empty($email) && !empty($tel)){
	
			# Connexion à la MySQL
			mysql_connect("*****", "etrecandidat", "*****");
			# Sélection de la base 'etrecandidat'
			mysql_select_db("etrecandidat");
			
			# Récupération du plus grand numéro de devis 
			$num_devis = mysql_query("SELECT MAX(numero_devis) AS numero_devis FROM demande_devis");
			# Incrémentation du numéro de devis
			$num_devis = ($num_devis + 1);
			# Insertion des éléments dans la table
			$variable = mysql_query("INSERT INTO demande_devis (numero_devis,format_tracts,papier,quantite,delai,name,ville,email,tel) VALUES ('$num_devis','$format_tracts','$papier','$quantite','$delai','$name','$ville','$email','$tel')") or die (mysql_error());
			
			# Création du corp de l'email
			$destinataire="anais@defense-leaders.com"; 
			
			$sujet="Demande de devis";
			
   			$msg="Nouvelle demande de devis
			Num_devis : $num_devis
			Nom du candidat : $name
			Ville : $ville
			Email : $email
			Tél. : $tel
			Format : $format_tracts
			Papier : $papier
			Quantite : $quantite
			Délai : $delai
			Prix : $prix";
			
			$entete="From: $email";
			
			# Envoi de l'email
			mail($destinataire,$sujet,$msg,$entete);
			

			
			echo "Your message has been sent, thank you";
			

          } 
     } 
	 
	 else{
	
		echo "you have not filled in all fields";
		
		}
	 
	 
?>
Oui, je pense qu'il y a un soucis d'auto-incrémentation car je ne peux pas l'activer dans phpmyadmin j'ai un message d'erreur "#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AUTO_INCREMENT' at line 1 "