Multiples select...multiples
Résolu/Fermé
gregorlabel
Messages postés
1
Date d'inscription
mercredi 20 septembre 2017
Statut
Membre
Dernière intervention
20 septembre 2017
-
Modifié le 20 sept. 2017 à 01:47
Gregor - 23 sept. 2017 à 19:52
Gregor - 23 sept. 2017 à 19:52
A voir également:
- Multiples select...multiples
- Reboot and select proper boot device asus - Forum Matériel & Système
- Utilisateurs multiples samsung - Guide
- Des passerelles par défaut multiples sont destinées à fournir la redondance - Forum Réseau
- En raison des multiples violations des consignes communautaires, il t'est temporairement impossible d'envoyer ou de recevoir des messages. consulte les détails dans les notifications de ton application. ✓ - Forum Mail
- En raison des multiples violations des consignes communautaires - Forum Mail
2 réponses
jordane45
Messages postés
38427
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 février 2025
4 734
20 sept. 2017 à 10:17
20 sept. 2017 à 10:17
Bonjour,
Pour commencer... essaye de placer le maximum de php AVANT le HTML
ça rendra ton code plus lisible.
Ensuite.... lorsque tu as du code qui doit se répéter plusieurs fois... pense à le transformer en "fonctions".
Evite également de mélanger du mysqli style objet avec du mysqli Style procédurale.
Voici ton code remis en forme : (codé sans tester.... faudra peut-être corrigé quelques trucs)
Ensuite... pourrais tu nous réexpliquer exactement ton souci ??
Où se fait ton "traitement" ??
Il n'y a acun code prenant en compte le POST de ton formulaire ......
Aurais tu oublié de nous le montrer ??
(avant de nous le montrer.. retravaille le en tenant compte de mes précédentes remarques....)
Pour commencer... essaye de placer le maximum de php AVANT le HTML
ça rendra ton code plus lisible.
Ensuite.... lorsque tu as du code qui doit se répéter plusieurs fois... pense à le transformer en "fonctions".
Evite également de mélanger du mysqli style objet avec du mysqli Style procédurale.
Voici ton code remis en forme : (codé sans tester.... faudra peut-être corrigé quelques trucs)
<?php //------------------------------------------------// // Affichage des erreurs PHP //------------------------------------------------// error_reporting(E_ALL); ini_set('display-errors','on'); //------------------------------------------------// //démarrage session //------------------------------------------------// session_start(); //------------------------------------------------// //Connexion à la bdd //------------------------------------------------// $DB_connect = new mysqli('127.0.0.1', 'root', '', 'restaurant_sav'); /* Modification du jeu de résultats en utf8 */ if ($DB_connect->connect_error) { die('Connect Error ('.$DB_connect->connect_errno.') '.$DB_connect->connect_error); } else { $msg = 'connecté'; } if (!$DB_connect->set_charset("utf8")) { printf("Erreur lors du chargement du jeu de caractères utf8 : %s\n", $DB_connect->error); exit(); } //------------------------------------------------// // Recupération PROPRE des variables //------------------------------------------------// $login = !empty($_SESSION['login']) ? $_SESSION['login'] : NULL; $pwd = !empty($_SESSION['pwd']) ? $_SESSION['pwd'] : NULL; //------ Fonction BDD ----------// function querySelect($sql){ global $DB_connect; if (!$result = $DB_connect->query($sql)) { printf("Erreur dans la requete : %s\n", $mysqli->error); } return $result; } //------------------------------------------------// // Récupération des différentes listes //------------------------------------------------// function getRangs(){ return querySelect("SELECT id_rang, nom_rang FROM rang WHERE id_lang = 1"); } function getPlats(){ return querySelect("SELECT id_plat, nom_plat FROM plats WHERE id_type_plat NOT IN (1, 2, 7, 9, 11) AND id_lang = 1 ORDER BY id_cat, nom_plat"); } ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <title>Accueil admin du Noori's</title> <link rel="stylesheet" type="text/css" href="../css/saisie_donnees.css"> <link href='http://fonts.googleapis.com/css?family=Bitter' rel='stylesheet' type='text/css'> </head> <body> <main> <div class="form-style-5"> <?php if ($login$ && $pwd) { include_once "fiche_logo.html"; ?> <form name="Organise_menu" action="traite_organise_menu.php" id="editForm" method="post" enctype="multipart/form-data" class="form-style-5"> <fieldset> <!-- /////// PREMIER RANG - PEUT ËTRE "ANTIPASTI" ////////////////--> <legend><span class="number">1</span>Choix du premier rang</legend> <!-- Select des données de la table plats --> <select name="choix_rang_1"> <!-- Remonte les données de la table PLATS --> <?php $rangs = getRangs(); while ($donnees = $rangs->fetch_array()){ echo '<option value="'.$donnees['nom_rang'].'" >'.htmlspecialchars_decode($donnees['nom_rang']).'</option>'; } ?> </select> </fieldset> <fieldset> <label for="plats_rang_1">Plats du premier rang</label> <!-- Select des données de la table plats réduites aux plats entrant dans les menus --> <select name="plats_rang_1[]" multiple="multiple" style="height: 130px"> <!-- Remonte les données de la table PLATS --> <?php $plats = getPlats(); while ($donnees = $plats->fetch_array()){ echo '<option value="'.$donnees['nom_plat'].'" >'.($donnees['nom_plat']).'</option>'; } ?> </select> </fieldset> <hr> <!-- /////// 2EME RANG - PEUT ËTRE "PRIMO PIATTO" ////////////////--> <fieldset> <legend><span class="number">2</span>Deuxième rang</legend> <!-- Select des données de la table plats --> <select name="choix_rang_2"> <!-- Remonte les données de la table PLATS --> <?php $rangs = getRangs(); while ($donnees = $rangs->fetch_array()) { echo '<option value="'.$donnees['id_rang'].'" >'.htmlspecialchars_decode($donnees['nom_rang']).'</option>'; } ?> </select> </fieldset> <fieldset> <label for="plats_rang_2">Ses plats</label> <!-- Select des données de la table plats réduites aux plats entrant dans les menus --> <select style="height: 130px" name="plats_rang_2[]" multiple="multiple"> <!-- Remonte les données de la table TYPE_PLATS --> <?php $plats = getPlats(); while ($donnees = $plats->fetch_array()) { echo '<option value="'.$donnees['id_plat'].'" >'.htmlspecialchars_decode($donnees['nom_plat']).'</option>'; } ?> </select> </fieldset> <hr> <fieldset> <!-- /////// 2EME RANG - PEUT ËTRE "SECONDO PIATTO" ////////////////--> <legend><span class="number">3</span>Troisième rang</legend> <!-- Select des données de la table plats --> <select name="choix_rang_3"> <!-- Remonte les données de la table PLATS --> <?php $rangs = getRangs(); while ($donnees = $rangs->fetch_array()) { echo '<option value="'.$donnees['id_rang'].'" >'.htmlspecialchars_decode($donnees['nom_rang']).'</option>'; } ?> </select> </fieldset> <fieldset> <label for="plats_rang_3">Ses plats</label> <!-- Select des données de la table plats réduites aux plats entrant dans les menus --> <select style="height: 130px" name="plats_rang_3[]" multiple="multiple"> <!-- Remonte les données de la table PLATS --> <?php $plats = getPlats(); while ($donnees = $plats->fetch_array()) { echo '<option value="'.$donnees['id_plat'].'" >'.htmlspecialchars_decode($donnees['nom_plat']).'</option>'; } ?> </select> </fieldset> <hr> <fieldset> <!-- /////// 2EME RANG - PEUT ËTRE "DOLCI" ////////////////--> <legend><span class="number">4</span>Quatrième rang</legend> <!-- Select des données de la table plats --> <select name="choix_rang_4"> <!-- Remonte les données de la table PLATS --> <?php $rangs = getRangs(); while ($donnees = $rangs->fetch_array()) { echo '<option value="'.$donnees['id_rang'].'" >'.htmlspecialchars_decode($donnees['nom_rang']).'</option>'; } ?> </select> </fieldset> <fieldset> <label for="plats_rang_4">Ses plats</label> <!-- Select des données de la table plats réduites aux plats entrant dans les menus --> <select style="height: 130px" name="plats_rang_4[]" multiple="multiple"> <!-- Remonte les données de la table PLATS --> <?php $plats = getPlats(); while ($donnees = $plats->fetch_array()) { echo '<option value="'.$donnees['id_plat'].'" >'.htmlspecialchars_decode($donnees['nom_plat']).'</option>'; } ?> </select> </fieldset> <br> <input type="submit" id="modifier" value="Formaliser le menu"> <textarea name="msg" rows="1" value="$msg"><?php echo $msg; ?></textarea> </form> <?php } ?> </div> </main> </body> </html>
Ensuite... pourrais tu nous réexpliquer exactement ton souci ??
Dans mon rêve je les vois postés dans ma page traitement en Liste_1 à 4...
Mais non ! Dans la vraie vie le permier (avec 4 options sélectionnées) est bien posté. Mais les array 2, 3 et 4 prennent les valeurs des quatre premières options des sélects 2, 3 et 4 alors que j'ai sélectionné d'autres plats !
Où se fait ton "traitement" ??
Il n'y a acun code prenant en compte le POST de ton formulaire ......
Aurais tu oublié de nous le montrer ??
(avant de nous le montrer.. retravaille le en tenant compte de mes précédentes remarques....)
Bonsoir,
Merci beaucoup Jordane pour ton message.
En fait j'ai eu du mal à comprendre pour les select multiples. Si on n'ajoute pas les [] au nom du select il ne postera jamais plus d'un résultat. Donc je suis arrivé à le caler dans ma fonction, entre les guillemets (p'tin de syntaxe avec les guillemets !) et il m'a posté les valeurs que j'attendais.
Le problème est donc résolu. Merci de ton aide.
Si tu veux je te mets le nouveau code.
Désolé du retard de ma réponse et bonne soirée
Merci beaucoup Jordane pour ton message.
En fait j'ai eu du mal à comprendre pour les select multiples. Si on n'ajoute pas les [] au nom du select il ne postera jamais plus d'un résultat. Donc je suis arrivé à le caler dans ma fonction, entre les guillemets (p'tin de syntaxe avec les guillemets !) et il m'a posté les valeurs que j'attendais.
Le problème est donc résolu. Merci de ton aide.
Si tu veux je te mets le nouveau code.
Désolé du retard de ma réponse et bonne soirée