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
- Code ascii - Guide
- Optimiser son pc - Accueil - Utilitaires
- 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 $kLe 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)