recuperer les données d'un tableau d'un formulaire après env

Petit nouveau ! | 8 Messages

26 mai 2010, 11:53

voici mon code
<?php
    include("haut.php");
    ?>
<?php
$n = mysql_connect("localhost", "root", '');
        mysql_select_db("marketplace");
		
	/*   ici on le fait pour qu'on ait toutes les données du membre et puis il reste à afficher ces données   */	
		
		$id=$_SESSION['id_membres'];
		
		$sql = "SELECT * FROM membres WHERE id_membres='$id'";
		$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

       $data = mysql_fetch_array($req);
      
	  //on va cherche la liste des produits dans la base de données
$sq2 = "select * from produit";
$result = mysql_query($sq2) or die(mysql_error());

$option = "<select name=\"prd[]\">";

while ($row = mysql_fetch_assoc($result) ) {

        $option .= "<option value=\"".$row['nom_produit']."\">".$row['nom_produit']."</option>";
} 
mysql_free_result($result);//on librere les ressources
mysql_close($n); // et on ferme la connexion
$option.="</select>";
?>
<script language="javascript">
/**
 * Cette fonction sert a supprimer une  ligne du tableau elle prend en parametre
 * l'id de la ligne
 */
function suppression (ligne) {
  
  // La suppression se fait en recuperent la ligne=noeud courant par son id ensuite on 
  //recupere le noeud parent avec parentNode et enfin on supprime avec removeChild  
  if( document.getElementById(ligne) ) {
      
	  document.getElementById(ligne).parentNode.removeChild(document.getElementById(ligne));
  }

}
/**
 * Cette fonction va servir pour la creation des inputs independament du navigateur
 * cette ca que j'avez oublier de preciser pour la premier fois
 */
function creerInput(name) {

   if( document.all){ // pour IE
   
       input = document.createElement("<input name='"+name+"'>");
   
   } else { // pour FF et autres navigateurs
       
	   input = document.createElement("input");
       input.name = name;
   }

   input.type = "text";
   
   return input;

}
/**
 * Cette fonction est appeler par le bouton ajouter elle place directement une ligne
 * comportant tous les input necessaire
 */ 
function AjouterLigne(){
   
   // On recupere la  tables des inputs 
   var table = document.getElementById('tableInput');
   // recuperation de tous les noeud fils tr
   var trs = table.getElementsByTagName('tr');
   // on crer un nouveau tr
   var newRow = document.getElementById('tableInput').insertRow(-1); 
   // ind va permetre de construire un id propre a chaque ligne sous la form 
   // row_1 row_2 ... row_N 
   
   var ind = trs.length-1;
   
   // si c'est pas la premiere fois qu'on fait appel a ajouterLigne()
   if( ind > 0 ) {
       
	   // Comme dit on se sert de ind pour construire l'id
       newRow.setAttribute("id","row_"+ind);
	   //setAttribute permet de definir un attribut a un element
       
	   //cette variable va contenir l'id elle sera passer en parametre a suppression
	   var idtr = "row_"+ind;
  
  } else {
      
	  // c'est la premiere fois qu'on appele ajouterLigne donc le id c'est row_1
	  newRow.setAttribute("id","row_1");
      var idtr = "row_1";
  }


// insert la cellule du nom_produit 
var newCell = newRow.insertCell(0);
   // on affect le select creer avec le php
   newCell.innerHTML = '<?php echo $option ?>';
//insert la celle quantite
var newCell = newRow.insertCell(1);
//creation du champs input qte
var qteInput = creerInput("qte[]");
//ajoute du champs qte a la cellule
newCell.appendChild(qteInput);
//insert la cellule description
newCell = newRow.insertCell(2);
//creation du champs input desc
var descInput = creerInput("desc[]");
//ajoute du champs desc a la cellule
newCell.appendChild(descInput);
//insert la cellule du bouton supprimer
newCell = newRow.insertCell(3);

//creation du bouton supprimer
if( document.all){ // pour IE
   
       bouton = document.createElement("<input name='sup_"+id_tr+"'>");
   
   } else { // pour FF et autres navigateurs
       
	   bouton = document.createElement("input");
       bouton.name = "sup_"+idtr;
   }

  	bouton.type = "button";
  	bouton.value = "Supprimer";
	bouton.id = 'Supprimer';
	//on lui affect un evenement onclick
  	bouton.onclick = function(){
	                  suppression(idtr);
	};
  	newCell.appendChild(bouton);

}
function verif_formulaire()
{

if(document.form.objet_appeldoffre.value == "")  {
   alert("Veuillez donner l'objet du marché svp!");
   document.form.objet_appeldoffre.focus();
   return false;
  }

  if(document.form.date_limite_depot_offre.value == "")  {
   alert("Veuillez preciser la date limite de depôt des offres svp!");
   document.form.date_limite_depot_offre.focus();
   return false;
  }
  
  if(document.form.modalite_paiement.value == "") {
   alert("Veuillez preciser la modalité de paiement et l'unité monétaire svp!");
   document.form.modalite_paiement.focus();
   return false;
  }
  
   if(document.form.cout_offre.value == "") {
   alert("La pondération du coût de l'offre doit être superieure ou égale à zéro!!");
   document.form.cout_offre.focus();
   return false;
  }
  
  
  if(document.form.delais_livraison.value == "") {
   alert("La pondération du délai de livraison doit être superieure ou égale à zéro!!");
   document.form.delais_livraison.focus();
   return false;
  }
  
  if(document.form.garantie.value == "") {
   alert("La pondération de la garantie doit être superieure ou égale à zéro!!");
   document.form.garantie.focus();
   return false;
  }
  
    if(document.form.experience.value == "") {
   alert("La pondération de l'experience doit être superieure ou égale à zéro!!");
   document.form.experience.focus();
   return false;
  }
  

  
  {
      // Cette fonction vérifie le format JJ/MM/AAAA saisi et la validité de la date.
      // Le séparateur est défini dans la variable separateur
	  var d = document.form.date_limite_depot_offre.value;
	  
      var amin=2010; // année mini
      var separateur="/"; // separateur entre jour/mois/annee
      var j=(d.substring(0,2));
      var m=(d.substring(3,5));
      var a=(d.substring(6));
      
      if ( ((isNaN(j))||(j<1)||(j>31)) ) {
         alert("Le jour n'est pas correct.");
		 document.form.date_limite_depot_offre.focus();
		 return false;
      }
	  
      if ( ((isNaN(m))||(m<1)||(m>12)) ) {
         alert("Le mois n'est pas correct.");
		 document.form.date_limite_depot_offre.focus();
		 return false;
      }
	  
      if ( ((isNaN(a))||(a<amin)) ) {
         alert("L'année n'est pas correcte.");
		 document.form.date_limite_depot_offre.focus();
		 return false;
      }
	  
      if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) ) {
         alert("Les séparateurs doivent être des "+separateur);
		 document.form.date_limite_depot_offre.focus();
		 return false;
      }
	    
	  	
         var d2=new Date(a,m-1,j);
         j2=d2.getDate();
         m2=d2.getMonth()+1;
         a2=d2.getFullYear();
         
         if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
            alert("La date "+d+" n'existe pas !");
			document.form.date_limite_depot_offre.focus();
            return false;
         }
			 
			 
			 
			 
	  }

    
  }
</script>

<div>
	  <blockquote>
	    <table width="100%" border="0">
          <tr>
            <td>

<form id="form" name="form" method="post" action="" onSubmit="return verif_formulaire()" >
<fieldset style="margin-left: 40px;"> <legend><em><strong> Vos Informations Personnelles</strong></em></legend>
               <table width="85%" border="0">
               <tr>
    <td width="34%"><label for="textfield">Nom et Prénom de l'Acheteur :</label></td>
    <td width="66%"><input type="text" name="textfield" id="textfield" size="30" readonly="" value="<?php echo $data['nom'].'   '.$data['prenom'];?>"  /></td>
  </tr>
  <tr>
    <td><label for="label">Adresse officielle de l'Entreprise :</label></td>
    <td><input type="text" name="textfield2" id="label" size="30" readonly="" value="<?php echo $data['adresse'];?>" /></td>
  </tr>
  <tr>
    <td><label for="label2">Pays et la ville :</label></td>
    <td><input type="text" name="textfield3" id="label2" size="30"  readonly=""  value="<?php echo $data['pays'].' ' .'-'. ' '.$data['ville'];?>" /></td>
  </tr>
</table> 
 </fieldset>
 <fieldset style="margin-left: 40px;"> <legend><em><strong> Votre Appel d'Offre</strong></em></legend>
     
	 <table width="85%" border="0">
               <tr>
    <td width="34%"><label for="textfield4"><span class="Style2">*</span> Objet du marché :</label></td>
    <td width="66%"><input type="text" name="objet_appeldoffre" id="textfield4" size="50" <?php if (isset($_POST['objet_appeldoffre'])) { echo 'value="' .$_POST['objet_appeldoffre'] .'"'; } ?>/></td>
  </tr>
   </table>
   <p><span class="Style2">*</span>Description de l'Appel d'offres :
		<div style="margin-left: 40px;">		 
  <table width="600" border="0" id="tableProduit" style="border:1px solid #336699"  >
    <tr>
      <th width="21%"><label for="prd">Produit</label></th>
      <th width="19%"><label for="qte">Quantité</label></th>
      <th width="47%"><label for="desc">Description produit</label></th>
      <th width="13%">&nbsp;</th>
    </tr>
	<tr>
	  <td colspan="4">
	    <table border="0" id="tableInput">
	    
         <tr id="row_0">
         <td width="151">
		 <?php echo $option?></td>
          <td width="215"><input type="text" name="qte[]" /></td>
           <td width="220"><input type="text" name="desc[]" /></td>
           <td width="277"><input type="button"  id="sup_1"  value=" supprimer" disabled="disabled"/></td>
         </tr>
	    </table>
	</td>
	</tr>
	<tr>
	<td height="30" colspan="4">
	<div align="center">
	<input type="button" name="addfields" value="Ajouter un produit" onClick="AjouterLigne()">  
	</div>
	</td>
	</tr>
  </table>
  </div>
  <p>
  <table width="85%" border="0">
      <tr>
        <td width="34%"><label for="label4"><span class="Style2">*</span> Date limite de depot des Offres :</label></td>
        <td width="24%"><input type="text" name="date_limite_depot_offre" id="label4" <?php if (isset($_POST['date_limite_depot_offre'])) { echo 'value="' .$_POST['date_limite_depot_offre'] .'"'; } ?> /></td>
		<td width="42%"> jj/mm/AAAA</td>
      </tr>
    </table>
	           <table width="85%" border="0">
                 <tr>
                   <td width="34%"><label for="textarea"><span class="Style2">* </span>Modalité de paiement et Unité Monétaire :</label></td>
                   <td width="66%"><textarea name="modalite_paiement" id="textarea" cols="38"><?php if (isset($_POST['modalite_paiement'])) { echo $_POST['modalite_paiement']; } ?></textarea></td>
                 </tr>
                 <tr>
                   <td><label for="label3">Modalité de livraison et d'assurance :</label></td>
                   <td><textarea name="modalite_livraison" id="label3" cols="38"><?php if (isset($_POST['modalite_livraison'])) { echo $_POST['modalite_livraison']; } ?></textarea></td>
                 </tr>
               </table>
  </fieldset>
  <fieldset style="margin-left: 40px;"> <legend><em><strong> Les crit&egrave;res de s&eacute;lection</strong></em></legend>
              <p>Crit&egrave;re de Selection  et leur pond&eacute;ration : </p>
			  
              <table width="85%" border="0">
                <tr>
                  <td width="35%"><label for="label6"><span class="Style2">*</span> Co&ucirc;t de l'offre :</label></td>
                  <td width="65%"><input type="text" name="cout_offre" id="label6" <?php if (isset($_POST['cout_offre'])) { echo 'value="' .$_POST['cout_offre'] .'"'; } ?> maxlength=2 onKeypress="if((event.keyCode < 45 || event.keyCode > 57) &&  event.keyCode != 32 &&  event.keyCode != 8 &&  event.keyCode != 0) event.returnValue = false; if((event.which < 45 || event.which > 57)  &&  event.which != 32  &&  event.which != 8  &&  event.which != 0 ) return false;" /></td>
                </tr>
                <tr>
                  <td><label for="label7"><span class="Style2">*</span> D&eacute;lai de livraison :</label></td>
                  <td><input type="text" name="delais_livraison" id="label7" <?php if (isset($_POST['delais_livraison'])) { echo 'value="' .$_POST['delais_livraison'] .'"'; } ?> maxlength=2 onKeypress="if((event.keyCode < 45 || event.keyCode > 57) &&  event.keyCode != 32 &&  event.keyCode != 8 &&  event.keyCode != 0) event.returnValue = false; if((event.which < 45 || event.which > 57)  &&  event.which != 32  &&  event.which != 8  &&  event.which != 0 ) return false;" /></td>
                </tr>
                <tr>
                  <td><label for="label8"><span class="Style2">* </span>Service Après vente et assistance technique :</label></td>
                  <td><input type="text" name="garantie" id="label8" <?php if (isset($_POST['garantie'])) { echo 'value="' .$_POST['garantie'] .'"'; } ?> maxlength=2 onKeypress="if((event.keyCode < 45 || event.keyCode > 57) &&  event.keyCode != 32 &&  event.keyCode != 8 &&  event.keyCode != 0) event.returnValue = false; if((event.which < 45 || event.which > 57)  &&  event.which != 32  &&  event.which != 8  &&  event.which != 0 ) return false;" /></td>
                </tr>
                <tr>
                  <td><label for="label9"><span class="Style2">* </span>Experience :</label></td>
                  <td><input type="text" name="experience" id="label9" <?php if (isset($_POST['experience'])) { echo 'value="' .$_POST['experience'] .'"'; } ?> maxlength=2 onKeypress="if((event.keyCode < 45 || event.keyCode > 57) &&  event.keyCode != 32 &&  event.keyCode != 8 &&  event.keyCode != 0) event.returnValue = false; if((event.which < 45 || event.which > 57)  &&  event.which != 32  &&  event.which != 8  &&  event.which != 0 ) return false;" /></td>
                </tr>
              </table>
			  </fieldset>
			 <p align="center">Tous les champs indiqu&eacute;s par une &eacute;toile (<span class="Style2">*</span>) sont   obligatoires.</p>
                  <p align="center">
                    <label for="Submit"></label>
                    <input type="submit" name="Submit" value="Envoyer" id="Submit" />
                  </p>
				 
  </form>

</td>
          </tr>
        </table>
	  </blockquote>
    </div></td>
  </tr>
  <?php
    include("bas.php");
    ?>
<?php
 
   if (isset($_POST['Submit'])) 
   {
    $n = mysql_connect("localhost", "root", '');
        mysql_select_db("marketplace");
		
	  if (isset($_POST['objet_appeldoffre']) AND isset($_POST['date_limite_depot_offre']) AND isset($_POST['modalite_paiement']) AND isset($_POST['modalite_livraison']) AND isset($_POST['garantie']) AND isset($_POST['experience']) AND isset($_POST['cout_offre']) AND isset($_POST['delais_livraison']))
{	  
   $id=$_SESSION['id_membres'];
   
   $objet=mysql_real_escape_string(htmlspecialchars($_POST['objet_appeldoffre']));
   $dateDepotOffre=mysql_real_escape_string(htmlspecialchars($_POST['date_limite_depot_offre']));
   $modalitePaiement=mysql_real_escape_string(htmlspecialchars($_POST['modalite_paiement']));
   $modaliteLivraison=mysql_real_escape_string(htmlspecialchars($_POST['modalite_livraison']));
   $cout=mysql_real_escape_string(htmlspecialchars($_POST['cout_offre']));
   $delais=mysql_real_escape_string(htmlspecialchars($_POST['delais_livraison']));
   $garantie=mysql_real_escape_string(htmlspecialchars($_POST['garantie']));
   $experience=mysql_real_escape_string(htmlspecialchars($_POST['experience']));
   
   
   // on va vérifier la date de depot des offres si elle est valide
   
    $date = date('d/m/Y');
        
		//on va enlever les slash avec la fonction explode pour la mettre en format numérique 		
		$dateLimite = explode("/", $dateDepotOffre);
		$dateNow = explode("/", $date);
		
		//concaténation pour inverser l'ordre ( pour avoir l'ordre ci : annéemoisjour)
		$dateDepot = $dateLimite[2].$dateLimite[1].$dateLimite[0]; 
		$date = $dateNow[2].$dateNow[1].$dateNow[0];
       		
		// on va comparer les dates
		if ($dateDepot<$date)
       {
	   echo '<script LANGUAGE="javascript"> alert ("La date limite de dépôt des Offres est invalide!!");</script>';
		  exit;
	   }
   
   $total=$cout + $delais + $garantie + $experience; //on fait le total des pondérations
   
   if (($total > 10) OR ($total < 10))  // on vérifie le total s'il est égale à 10
    {
	 echo '<script LANGUAGE="javascript"> alert ("Le total de votre pondération des critères de sélection doit être égale à 10!");</script>';
		  exit;
    }	
   
  mysql_query("INSERT INTO Appeldoffre VALUES('', '" . $id . "', '" . $objet . "', '" . time() . "', '" . $dateDepotOffre . "', '" . $modalitePaiement . "', '" . $modaliteLivraison . "')");
   
   $sql = "SELECT id_Appeldoffre FROM Appeldoffre WHERE objet_appeldoffre='$objet'"; // pour chercher l'id de l'Appel d'offre qu'on vient d'enregistrer!!
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

$data = mysql_fetch_array($req);
$idApel_offre=$data['id_Appeldoffre'];

mysql_query("INSERT INTO critere_selection VALUES('" . $idApel_offre . "', '" . $cout . "','" . $delais . "', '" . $garantie . "', '" . $experience . "')");

echo '<script language=javascript> alert ("Votre Appel d\'offre a été enregistré!!");</script>';
      echo '<SCRIPT LANGUAGE="JavaScript"> document.location.href="membre.php" </SCRIPT>'; 
 }  
   
   mysql_close($n);
   }

?>
jeveux envoyer le tableau description Appel d'offre dans la table description_appel d'offre mais sil ya des erreurs dans le formulaire comme une date de depot des offres invalide comment je pourrais recuperer le tableau description appel doffre avec les $_POST je vous signale que les champs produit et quentite et description produit sont des tableaux aussi
merci de vtre aide

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

26 mai 2010, 14:34

Modération :
Afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Petit nouveau ! | 8 Messages

01 juin 2010, 12:30

je veux que vous m'aidez!!
coté client :le bouton supprimer du tableau description appel d'offre n'apparait pas en internet explorer et j'ai des problèmes si j'essaie de supprimer un produit qui le meme numero!!
coté serveur : j'ai besoin aussi une aide sur coté serveur car le script se plante quand il ya des erreurs merci!!

voici le code :
 <? include("haut.php");
$n = mysql_connect("localhost", "root", '');
        mysql_select_db("marketplace");
		
	/*   ici on le fait pour qu'on ait toutes les données du membre  car il est en session et puis il reste à afficher ces données   */	
		
		$id=$_SESSION['id_membres'];
[sql]$sql = "SELECT * FROM membres WHERE id_membres='$id'";[/sql]
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

       $data = mysql_fetch_array($req);
      
	  //on va cherche la liste des produits dans la base de données
[sql]$sq2 = "select * from produit";[/sql]
$result = mysql_query($sq2) or die(mysql_error());

$option = "<select name=\"prd[]\">";

while ($row = mysql_fetch_assoc($result) ) {

        $option .= "<option value=\"".$row['nom_produit']."\">".$row['nom_produit']."</option>";
} 
mysql_free_result($result);//on librere les ressources
mysql_close($n); // et on ferme la connexion
$option.="</select>";
<script language="javascript">
/**
 * Cette fonction sert a supprimer une  ligne du tableau elle prend en parametre
 * l'id de la ligne
 */
function suppression (ligne) {
  
  // La suppression se fait en recuperent la ligne=noeud courant par son id ensuite on 
  //recupere le noeud parent avec parentNode et enfin on supprime avec removeChild  
  if( document.getElementById(ligne) ) {
      
	  document.getElementById(ligne).parentNode.removeChild(document.getElementById(ligne));
  }

}
/**
 * Cette fonction va servir pour la creation des inputs independament du navigateur
 * cette ca que j'avez oublier de preciser pour la premier fois
 */
function creerInput(name) {

   if( document.all){ // pour IE
   
       input = document.createElement("<input name='"+name+"'>");
   
   } else { // pour FF et autres navigateurs
       
	   input = document.createElement("input");
       input.name = name;
   }

   input.type = "text";
   
   return input;

}
/**
 * Cette fonction est appeler par le bouton ajouter elle place directement une ligne
 * comportant tous les input necessaire
 */ 
function AjouterLigne(){
   
   // On recupere la  tables des inputs 
   var table = document.getElementById('tableInput');
   // recuperation de tous les noeud fils tr
   var trs = table.getElementsByTagName('tr');
   // on crer un nouveau tr
   var newRow = document.getElementById('tableInput').insertRow(-1); 
   // ind va permetre de construire un id propre a chaque ligne sous la form 
   // row_1 row_2 ... row_N 
   
   var ind = trs.length-1;
   
   // si c'est pas la premiere fois qu'on fait appel a ajouterLigne()
   if( ind > 0 ) {
       
	   // Comme dit on se sert de ind pour construire l'id
       newRow.setAttribute("id","row_"+ind);
	   //setAttribute permet de definir un attribut a un element
       
	   //cette variable va contenir l'id elle sera passer en parametre a suppression
	   var idtr = "row_"+ind;
  
  } else {
      
	  // c'est la premiere fois qu'on appele ajouterLigne donc le id c'est row_1
	  newRow.setAttribute("id","row_1");
      var idtr = "row_1";
  }

// insert la cellule du numero 
var newCell = newRow.insertCell(0);
newCell.innerHTML = "<b style='color:#009900'>"+ind+"<b>";
// insert la cellule du nom_produit 
var newCell = newRow.insertCell(1);
   // on affect le select creer avec le php
   newCell.innerHTML = '<?php echo $option ?>';
   //on laisse une place donc une colonne vide pour que les colonnes ne se colent pas
   var newCell = newRow.insertCell(2);
newCell.innerHTML = "";
//insert la celle quantite
var newCell = newRow.insertCell(3);
//creation du champs input qte
var qteInput = creerInput("qte[]");
//ajoute du champs qte a la cellule
newCell.appendChild(qteInput);

var newCell = newRow.insertCell(4);
newCell.innerHTML = "";
//insert la cellule description
newCell = newRow.insertCell(5);

//creation du textarea  desc


if( document.all){ // pour IE
   
       descInput = document.createElement("<textarea name='desc[]'>");
   
   } else { // pour FF et autres navigateurs
       
	   descInput = document.createElement("textarea");
       descInput.name = "desc[]";
   }
   descInput.cols='30';
   descInput.rows='5';
//ajoute du champs desc a la cellule
newCell.appendChild(descInput);

 //colonne pour ecrire maximum
   var newCell = newRow.insertCell(6);
newCell.innerHTML = "maximum";

//colonne pour ecrire 300
   var newCell = newRow.insertCell(7);
newCell.innerHTML = "300";

//colonne pour ecrire caractère
   var newCell = newRow.insertCell(8);
newCell.innerHTML = "caractères";

//insert la cellule du bouton supprimer
newCell = newRow.insertCell(9);

//creation du bouton supprimer
if( document.all){ // pour IE
   
       bouton = document.createElement("<input name='sup_"+id_tr+"'>");
   
   } else { // pour FF et autres navigateurs
       
	   bouton = document.createElement("input");
       bouton.name = "sup_"+idtr;
   }

  	bouton.type = "button";
  	bouton.value = "Supprimer";
	bouton.id = 'Supprimer';
	//on lui affect un evenement onclick
  	bouton.onclick = function(){
	                  suppression(idtr);
	};
  	newCell.appendChild(bouton);

}
function verif_formulaire()
{

if(document.form.objet_appeldoffre.value == "")  {
   alert("Veuillez donner l'objet du marché svp!");
   document.form.objet_appeldoffre.focus();
   return false;
  }

  if(document.form.date_limite_depot_offre.value == "")  {
   alert("Veuillez preciser la date limite de depôt des offres svp!");
   document.form.date_limite_depot_offre.focus();
   return false;
  }
  
  if(document.form.modalite_paiement.value == "") {
   alert("Veuillez preciser la modalité de paiement et l'unité monétaire svp!");
   document.form.modalite_paiement.focus();
   return false;
  }
  
   if(document.form.cout_offre.value == "") {
   alert("La pondération du coût de l'offre doit être superieure ou égale à zéro!!");
   document.form.cout_offre.focus();
   return false;
  }
  
  
  if(document.form.delais_livraison.value == "") {
   alert("La pondération du délai de livraison doit être superieure ou égale à zéro!!");
   document.form.delais_livraison.focus();
   return false;
  }
  
  if(document.form.garantie.value == "") {
   alert("La pondération de la garantie doit être superieure ou égale à zéro!!");
   document.form.garantie.focus();
   return false;
  }
  
    if(document.form.experience.value == "") {
   alert("La pondération de l'experience doit être superieure ou égale à zéro!!");
   document.form.experience.focus();
   return false;
  }
  

  
  {
      // Cette fonction vérifie le format JJ/MM/AAAA saisi et la validité de la date.
      // Le séparateur est défini dans la variable separateur
	  var d = document.form.date_limite_depot_offre.value;
	  
      var amin=2010; // année mini
      var separateur="/"; // separateur entre jour/mois/annee
      var j=(d.substring(0,2));
      var m=(d.substring(3,5));
      var a=(d.substring(6));
      
      if ( ((isNaN(j))||(j<1)||(j>31)) ) {
         alert("Le jour n'est pas correct.");
		 document.form.date_limite_depot_offre.focus();
		 return false;
      }
	  
      if ( ((isNaN(m))||(m<1)||(m>12)) ) {
         alert("Le mois n'est pas correct.");
		 document.form.date_limite_depot_offre.focus();
		 return false;
      }
	  
      if ( ((isNaN(a))||(a<amin)) ) {
         alert("L'année n'est pas correcte.");
		 document.form.date_limite_depot_offre.focus();
		 return false;
      }
	  
      if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) ) {
         alert("Les séparateurs doivent être des "+separateur);
		 document.form.date_limite_depot_offre.focus();
		 return false;
      }
	    
	  	
         var d2=new Date(a,m-1,j);
         j2=d2.getDate();
         m2=d2.getMonth()+1;
         a2=d2.getFullYear();
         
         if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
            alert("La date "+d+" n'existe pas !");
			document.form.date_limite_depot_offre.focus();
            return false;
         }
			 
			 
			 
			 
	  }

    
  }
</script>

<div>
	  <blockquote>
	    <table width="100%" border="0">
          <tr>
            <td>

<form id="form" name="form" method="post" action="" onSubmit="return verif_formulaire()" >
<fieldset style="margin-left: 40px;"> <legend><em><strong> Vos Informations Personnelles</strong></em></legend>
               <table width="85%" border="0">
               <tr>
    <td width="34%"><label for="textfield">Nom et Prénom de l'Acheteur :</label></td>
    <td width="66%"><input type="text" name="textfield" id="textfield" size="30" readonly="" value="<?php echo $data['nom'].'   '.$data['prenom'];?>"  /></td>
  </tr>
  <tr>
    <td><label for="label">Adresse officielle de l'Entreprise :</label></td>
    <td><input type="text" name="textfield2" id="label" size="30" readonly="" value="<?php echo $data['adresse'];?>" /></td>
  </tr>
  <tr>
    <td><label for="label2">Pays et la ville :</label></td>
    <td><input type="text" name="textfield3" id="label2" size="30"  readonly=""  value="<?php echo $data['pays'].' ' .'-'. ' '.$data['ville'];?>" /></td>
  </tr>
</table> 
 </fieldset>
 <fieldset style="margin-left: 40px;"> <legend><em><strong> Votre Appel d'Offre</strong></em></legend>
     
	 <table width="85%" border="0">
               <tr>
    <td width="34%"><label for="textfield4"><span class="Style2">*</span> Objet du marché :</label></td>
    <td width="66%"><input type="text" name="objet_appeldoffre" id="textfield4" size="50" <?php if (isset($_POST['objet_appeldoffre'])) { echo 'value="' .$_POST['objet_appeldoffre'] .'"'; } ?>/></td>
  </tr>
   </table>
   <p><span class="Style2">*</span>Description de l'Appel d'offres :
		<div style="margin-left: 40px;">		 
    <table width="58%" border="0" style="border:1px solid #336699" id="tableProduit">
    <tr>
      <th width="2%"></th>
      <th width="14%"><label for="prd">Produit</label></th>
      <th width="23%"><label for="qte">Quantité</label></th>
      <th width="29%"><label for="desc">Description produit</label></th>
      <th width="32%">&nbsp;</th>
    </tr>
	<tr>
	  <td colspan="5">
	    <table width="574" border="0" id="tableInput">
	    
         <tr id="row_0">
         <td width="8"><b style="color:#009900">0</b></td>
         <td width="19"> <?php echo $option?>		 </td>
		 <td width="2">&nbsp;</td>
          <td width="144"><input type="text" name="qte[]"  /></td>
		  <td width="3">&nbsp; </td>
           <td width="141"><textarea name="desc[]" cols="30" rows="5"></textarea></td>
		   <td width="60">maximum</td>
		   <td width="24">300</td>
		   <td width="50">caractères</td>
           <td width="81"><input type="button"  id="sup_1"  value=" supprimer" disabled="disabled"/></td>
         </tr>
	    </table>
	</td>
	</tr>
	<tr>
	<td colspan="5">
	<div align="center">
	<input type="button" name="addfields" value="Ajouter un produit" onClick="AjouterLigne()"> 
	</div>
	</td>
	</tr>
  </table>
  </div>
  <p>
  <table width="85%" border="0">
      <tr>
        <td width="34%"><label for="label4"><span class="Style2">*</span> Date limite de depot des Offres :</label></td>
        <td width="24%"><input type="text" name="date_limite_depot_offre" id="label4" <?php if (isset($_POST['date_limite_depot_offre'])) { echo 'value="' .$_POST['date_limite_depot_offre'] .'"'; } ?> /></td>
		<td width="42%"> jj/mm/AAAA</td>
      </tr>
    </table>
	           <table width="85%" border="0">
                 <tr>
                   <td width="34%"><label for="textarea"><span class="Style2">* </span>Modalité de paiement et Unité Monétaire :</label></td>
                   <td width="66%"><textarea name="modalite_paiement" id="textarea" cols="38"><?php if (isset($_POST['modalite_paiement'])) { echo $_POST['modalite_paiement']; } ?></textarea></td>
                 </tr>
                 <tr>
                   <td><label for="label3"><span class="Style2">* </span>Modalité de livraison et d'assurance :</label></td>
                   <td><textarea name="modalite_livraison" id="label3" cols="38"><?php if (isset($_POST['modalite_livraison'])) { echo $_POST['modalite_livraison']; } ?></textarea></td>
                 </tr>
               </table>
  </fieldset>
  <fieldset style="margin-left: 40px;"> <legend><em><strong> Les critères de sélection</strong></em></legend>
              <p>Critère de Selection  et leur pondération : </p>
			  
              <table width="85%" border="0">
                <tr>
                  <td width="35%"><label for="label6"><span class="Style2">*</span> Coût de l'offre :</label></td>
                  <td width="65%"><input type="text" name="cout_offre" id="label6" <?php if (isset($_POST['cout_offre'])) { echo 'value="' .$_POST['cout_offre'] .'"'; } ?> maxlength=2 onKeypress="if((event.keyCode < 45 || event.keyCode > 57) &&  event.keyCode != 32 &&  event.keyCode != 8 &&  event.keyCode != 0) event.returnValue = false; if((event.which < 45 || event.which > 57)  &&  event.which != 32  &&  event.which != 8  &&  event.which != 0 ) return false;" /></td>
                </tr>
                <tr>
                  <td><label for="label7"><span class="Style2">*</span> Délai de livraison :</label></td>
                  <td><input type="text" name="delais_livraison" id="label7" <?php if (isset($_POST['delais_livraison'])) { echo 'value="' .$_POST['delais_livraison'] .'"'; } ?> maxlength=2 onKeypress="if((event.keyCode < 45 || event.keyCode > 57) &&  event.keyCode != 32 &&  event.keyCode != 8 &&  event.keyCode != 0) event.returnValue = false; if((event.which < 45 || event.which > 57)  &&  event.which != 32  &&  event.which != 8  &&  event.which != 0 ) return false;" /></td>
                </tr>
                <tr>
                  <td><label for="label8"><span class="Style2">* </span>Service Après vente et assistance technique :</label></td>
                  <td><input type="text" name="garantie" id="label8" <?php if (isset($_POST['garantie'])) { echo 'value="' .$_POST['garantie'] .'"'; } ?> maxlength=2 onKeypress="if((event.keyCode < 45 || event.keyCode > 57) &&  event.keyCode != 32 &&  event.keyCode != 8 &&  event.keyCode != 0) event.returnValue = false; if((event.which < 45 || event.which > 57)  &&  event.which != 32  &&  event.which != 8  &&  event.which != 0 ) return false;" /></td>
                </tr>
                <tr>
                  <td><label for="label9"><span class="Style2">* </span>Experience :</label></td>
                  <td><input type="text" name="experience" id="label9" <?php if (isset($_POST['experience'])) { echo 'value="' .$_POST['experience'] .'"'; } ?> maxlength=2 onKeypress="if((event.keyCode < 45 || event.keyCode > 57) &&  event.keyCode != 32 &&  event.keyCode != 8 &&  event.keyCode != 0) event.returnValue = false; if((event.which < 45 || event.which > 57)  &&  event.which != 32  &&  event.which != 8  &&  event.which != 0 ) return false;" /></td>
                </tr>
              </table>
			  </fieldset>
			 <p align="center">Tous les champs indiqués par une étoile (<span class="Style2">*</span>) sont   obligatoires.</p>
                  <p align="center">
                    <label for="Submit"></label>
                    <input type="submit" name="Submit" value="Envoyer" id="Submit" />
                  </p>
				 
  </form>

</td>
          </tr>
        </table>
	  </blockquote>
    </div></td>
  </tr>
if (isset($_POST['Submit'])) 
   {
    $n = mysql_connect("localhost", "root", '');
        mysql_select_db("marketplace");
		
	  if (isset($_POST['objet_appeldoffre']) AND isset($_POST['date_limite_depot_offre']) AND isset($_POST['modalite_paiement']) AND isset($_POST['modalite_livraison']) AND isset($_POST['garantie']) AND isset($_POST['experience']) AND isset($_POST['cout_offre']) AND isset($_POST['delais_livraison']) AND isset($_POST['prd']) AND isset ($_POST['qte']) AND isset($_POST['desc']))
{	  
   $id=$_SESSION['id_membres'];
   
   $objet=mysql_real_escape_string(htmlspecialchars($_POST['objet_appeldoffre']));
   $dateDepotOffre=mysql_real_escape_string(htmlspecialchars($_POST['date_limite_depot_offre']));
   $modalitePaiement=mysql_real_escape_string(htmlspecialchars($_POST['modalite_paiement']));
   $modaliteLivraison=mysql_real_escape_string(htmlspecialchars($_POST['modalite_livraison']));
   $cout=mysql_real_escape_string(htmlspecialchars($_POST['cout_offre']));
   $delais=mysql_real_escape_string(htmlspecialchars($_POST['delais_livraison']));
   $garantie=mysql_real_escape_string(htmlspecialchars($_POST['garantie']));
   $experience=mysql_real_escape_string(htmlspecialchars($_POST['experience']));
   
   //on initialise une variable pour deboguage et une variable error 
//qui va contenir le message d'erreur
$debug = TRUE;
$error='';
$x=5;
//debut des controles
   while($x==5) //pour forcer la boucle a etre executer!!
  { 
   //on va vérifier si les champs obligatoires sont vide!!
   if(empty($_POST['objet_appeldoffre']) OR empty($_POST['date_limite_depot_offre']) OR empty($_POST['modalite_paiement']) OR empty($_POST['modalite_livraison']) OR empty($_POST['garantie']) OR empty($_POST['experience']) OR empty($_POST['cout_offre']) OR empty($_POST['delais_livraison']))
   {	
	$debug = FALSE;
    $error='il y a un ou des champs obligatoires vide!!';
	break;
   
   }
   
   // on va vérifier la date de depot des offres si elle est valide
   
    $date = date('d/m/Y'); //fonction pour chercher la date d'aujourd'hui
        
		//on va enlever les slash avec la fonction explode pour la mettre en format numérique 		
		$dateLimite = explode("/", $dateDepotOffre);
		$dateNow = explode("/", $date);
		
		//concaténation pour inverser l'ordre ( pour avoir l'ordre ci : annéemoisjour)
		$dateDepot = $dateLimite[2].$dateLimite[1].$dateLimite[0]; 
		$date = $dateNow[2].$dateNow[1].$dateNow[0];
       		
		// on va comparer les dates
		if ($dateDepot<$date)
       {
	   $debug = FALSE;
    $error='La date limite de dépôt des Offres est invalide!!';
	break;
	   }
   
   $total=$cout + $delais + $garantie + $experience; //on fait le total des pondérations
   
   if (($total > 10) OR ($total < 10))  // on vérifie le total s'il est égale à 10
    {
	$debug = FALSE;
    $error='Le total de votre pondération des critères de sélection doit être égale à 10!';
	break;
    }	

	
   //on  va vériffer le tableau description Appel d'offre
   if($x==5)
  { 
   //on compte le nombre de produit saisie
$nbProduit = count($_POST['prd']);

for ($i = 0; $i < $nbProduit; $i++) {
     $prd = $_POST['prd'][$i];
	 $desc = $_POST['desc'][$i];
	 $qte = $_POST['qte'][$i];
	 //dabord si l'un des champs est vide
	 if (empty($prd) || empty($desc) || empty($qte)) {
	 
	     //on met debug a false
		 $debug = FALSE;
		 $error = "Erreur : ligne ".$i."\\n l\'un des champs requit est vide";
		 //on force l'arret de la boucle
		 break;
	   	 //j'utilise ici la fonction intval qui retourne en cas de succes pour convertir une chaine
	     // en chiffre la chaine saisie sinon elle renvoi 0
	 } 
	 elseif (intval($qte) == 0) {
	     //on met debug a false
		 $debug = FALSE;
		 $error = "Erreur : ligne ".$i."\\n la quantité doit être un chiffre";
		 //on force l'arret de la boucle
		 break;
	     //si la taille de la description depasse 300 caracteres
	 } 
	 elseif (strlen($desc) > 300 ) {
	     //on met debug a false
		 $debug = FALSE;
		 $error = "Erreur :ligne ".$i."\\n la description doit au maximum comporter 300 caracteres";
		 //on force l'arret de la boucle
		 break;
	 }
}
}
}
//  a la sortie de la boucle si debug == FALSE
if (!$debug) {

   echo "<script type='text/javascript'>
        alert('".html_entity_decode($error)."');
        window.history.go(-1);
   </script>
   ";

} 
// maintenant il n'ya aucune erreur on peut enregistrer l'appel d'offre!!!
else {
$relance = 0; // comme c'est la première l'Appel d'offre est fait on lui donne comme valeur 0 pour le champ relance!! 
// on va d'abord enregistrer dans la table Appel d'offre et apreès recuperer l'id Appel d'offre pour l'utiliser dans les tables critères de selection et decription Appeldoffre
mysql_query("INSERT INTO Appeldoffre VALUES('', '" . $id . "', '" . $objet . "', '" . time() . "', '" . $dateDepotOffre . "', '" . $modalitePaiement . "', '" . $modaliteLivraison . "', '" . $relance . "')");
[sql]$sql = "SELECT id_Appeldoffre FROM Appeldoffre WHERE objet_appeldoffre='$objet'";[/sql]
// pour chercher l'id de l'Appel d'offre qu'on vient d'enregistrer!!
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

$data = mysql_fetch_array($req);
$idApel_offre=$data['id_Appeldoffre']; // on a trouvé l'id Appel d'offre et on va enregistrer cette fois les critères de selection

mysql_query("INSERT INTO critere_selection VALUES('" . $idApel_offre . "', '" . $cout . "','" . $delais . "', '" . $garantie . "', '" . $experience . "')");

//on va maintenant enregistrer le tableau de la description de l'Appel d'offre dans la table description_appeldoffre
    for ($i = 0; $i < $nbProduit; $i++) {
	     $prd = $_POST['prd'][$i];
	 	 $desc = $_POST['desc'][$i];
	 	 $qte = $_POST['qte'][$i];
	 	 $sql = "INSERT INTO description_appeldoffre(id_Appeldoffre,produit,quantite,description_produit) values ('idApel_offre','$prd','$qte','$desc')";
	 	 mysql_query ($sql)or die (mysql_error().$sql);
    }
	
	
echo '<script language=javascript> alert ("Votre Appel d\'offre a été enregistré!!");</script>';
      echo '<SCRIPT LANGUAGE="JavaScript"> document.location.href="membre.php" </SCRIPT>'; 
}
  
 }  
   
   mysql_close($n);
   }

?>