Optimiser un code de verif php
                                    
                        Nath                    
                                    -
                                     
Nath -
        Nath -
        Bonjour,   
bon voila j'ai un code qui marche mais qui n'est pas très joli et j'aimerai l'optimiser car je serais amener a répéter ce genre de code dans le futur.
j'ai un formulaire avec 4 menus déroulants et je veux qu'a vérifier à chaque fois qu'il n'y ai pas de doublons, et aussi si le menu déroulant précédent est vide le menu deroulant qui suit s'exécute dans le variable du menu précédent. c'est peut être pas très clair je vais vous laisser mon code et un exemple.
(je detaille la 4e condition)
s1 à s4 sont les 4 menus déroulants, si l'utilisateur sélectionne par exemple le menu deroulant 2 et 3, seul les variables s1 et s2 se remplissent.
Mais je crains m'être compliquer la vie dans cette histoire. Comment optimiser au mieux mon code sans passer par toutes ces conditions. j'imagine que developpeur professionnel ne code pas de cette façon?
j'espère que je suis pas trop brouillon et que vous m'avez compris sinon n'hésitez pas demandez ;)
je demande ca car je serais amener à répéter ce genre de code dans le futur et avec plus de 4 menus.. alors imaginez..
Merci beaucoup :)
Nath
                
            
                
    
    
    
        bon voila j'ai un code qui marche mais qui n'est pas très joli et j'aimerai l'optimiser car je serais amener a répéter ce genre de code dans le futur.
j'ai un formulaire avec 4 menus déroulants et je veux qu'a vérifier à chaque fois qu'il n'y ai pas de doublons, et aussi si le menu déroulant précédent est vide le menu deroulant qui suit s'exécute dans le variable du menu précédent. c'est peut être pas très clair je vais vous laisser mon code et un exemple.
(je detaille la 4e condition)
if (isset($_POST['s1'])){  
if($_POST['s1']!="Aucune") {  
 $s1 = $_POST['s1'];}  
}  
       
if (isset($_POST['s2'])){  
 if($_POST['s2']!="Aucune") {  
  if ($s1!="") {  
   if($s1 != $_POST['s2']) {  
    $s2 = $_POST['s2'];}  
  } else {$s1 =  $_POST['s2'];}  
}  
}  
       
if (isset($_POST['s3'])){  
 if($_POST['s3']!="Aucune") {  
  if ($s1=="") {  
   $s1 = $_POST['s3'];}  
  elseif ($s2=="") {  
   if($s1 != $_POST['s3']) {  
    $s2 =  $_POST['s3'];}  
  }   
  else {   
   if($s1!= $_POST['s3'] && $s2 != $_POST['s3']){  
    $s3 = $_POST['s3'];}  
  }  
 }  
}  
       
if (isset($_POST['s4'])){   
 if($_POST['s4']!="Aucune") { //si diferent de aucune  
  if ($s1=="") { //s'il s'agit du premier menu selectionner (dans ce cas le menu 1-2 et 3 sont resté sur aucune)  
   $s1 = $_POST['s4'];} //alors c'est la 1ere variable qui se rempli (et ainsi de suite pour les elseif)  
  elseif ($s2=="") {  
   if ($s1 != $_POST['s4']) {  
    $s2 =  $_POST['s4'];}  
  }   
  elseif ($s3=="") {   
   if($s1!= $_POST['s4'] && $s2 != $_POST['s4']) { //si la valeur n'a pas déja été selectionné  
    $s3 = $_POST['s4'];}  
   }  
   else {   
    if($s1!= $_POST['s4'] && $s2 != $_POST['s4'] && $s3 != $_POST['s4']) {//si la valeur n'a pas déja été selectionné  
    $s4 = $_POST['s4'];}  
  }  
 }  
}  
s1 à s4 sont les 4 menus déroulants, si l'utilisateur sélectionne par exemple le menu deroulant 2 et 3, seul les variables s1 et s2 se remplissent.
Mais je crains m'être compliquer la vie dans cette histoire. Comment optimiser au mieux mon code sans passer par toutes ces conditions. j'imagine que developpeur professionnel ne code pas de cette façon?
j'espère que je suis pas trop brouillon et que vous m'avez compris sinon n'hésitez pas demandez ;)
je demande ca car je serais amener à répéter ce genre de code dans le futur et avec plus de 4 menus.. alors imaginez..
Merci beaucoup :)
Nath
        A voir également:         
- Optimiser un code de verif php
- Optimiser son pc - Accueil - Utilitaires
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
3 réponses
                        
                    Bonjour
Si j'ai bien compris ce que tu cherches à faire, voici un code qui boucle sur les variables $_POST['s1'], $_POST['s2']..
    
                Si j'ai bien compris ce que tu cherches à faire, voici un code qui boucle sur les variables $_POST['s1'], $_POST['s2']..
$tb=array();
for ($k=1; isset($_POST['s'.$k]); $k++){
  $x=$_POST['s'.$k];
  if ($x=='Aucune') $x='';
  for ($kk=1;isset($tb[$kk]); $kk++) { // recherche si valeur déjà vue
    if ($tb[$kk]==$x) break; // valeur déjà vue
  } // for $kk
  if (! isset($tb[$kk])) $tb[$kk]=$x; // c'est une nouvelle valeur, on l'ajoute 
} // for $k
Le résultat est dans le tableau $tb, qui a juste de nombre utile d'éléments (à partir de l'indice 1 mais c'est facile à changer)
                
                