Vous êtes ici Codes PHP et MySQL > Formulaires > Menu SELECT avec groupes OPTGROUP depuis 2 champs...

 

Menu SELECT avec groupes OPTGROUP depuis 2 champs MySQL

Ce bout de code permet de générer une liste déroulante select avec des groupes d'options optgroup, en fonction d'un champ d'une table MySQL.

Inspiré d'un autre bout de code, mais je ne parviens pas à le retrouver.
 
poujolrost-mathias
Site de l'auteur voir
[14] sources en PHP voir
Code vu 5481 fois
Enregistré le 02 Juil 2009
  • Digg ce code sur digg.com
  • Bookmark ce code sur del.icio.us
  • Bookmark ce code sur Google
  • Bookmark ce code sur Yahoo
  • Ajoute Menu SELECT avec groupes OPTGROUP depuis 2 champs MySQL
  • Partage ce code sur Facebook
 
 
 
 

Code Source


01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
 
<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Menu SELECT avec groupes OPTGROUP depuis 2 champs MySQL   */
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts520-PHP.htm              */
/* Auteur         : poujolrost-mathias                                        */
/* Date édition   : 02 Juil 2009                                              */
/* Website auteur : http://site.mathiaspoujolrost.net/competences/            */
/*                                                                            */
/******************************************************************************/


/* Liste déroulante <select> avec groupes <optgroup>, depuis 2 champs MySQL */
/* ici : liste catégorisée des références d'un porfolio */


/* ***** PREAMBULE : structure de la table ***** */
CREATE TABLE `portfolio_creations` (
  `idsmallint(5unsigned NOT NULL auto_increment,
  `categorieenum('edition','annoncespresse','plv','ecommunication'NOT NULL,
  `refvarchar(50NOT NULL// dans l'URL par exemple
  `titrevarchar(70NOT NULL,
  `nomvarchar(50NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=;


/* ***** ETAPE 1 : récupération des données ***** */
$requete "SELECT categorie, ref
                FROM portfolio_creations
                ORDER BY categorie";
                // En ne pécisant pas ASC (ordre croisant) ou DESC, les 
                // catégories sont renvoyées dans l'ordre dans lequel
                // elles ont été définies

$resultat mysql_query($requete); 
 
$listeCategoriseeReferences = array();
while ($ligne mysql_fetch_assoc($resultat)) 
{
    $cat $ligne['categorie']; 
    $listeCategoriseeReferences[$cat][] .= $ligne['ref'];
}
/* $listeCategoriseeReferences vaut alors quelquechose comme ça :
Array
(
    [edition] => Array
        (
            [0] => bla2-blaune-ref-en-edition
            [1] => client1-salon-bidule-en-plv
        )

    [plv] => Array
        (
            [0] => une-refsdfsf-en-plv
        )

    [ecommunication] => Array
        (
            [0] => site-web-le-studio
        )
)
*/


/* ***** ETAPE 2 : génération du menu déroulant ***** */
/* tableau de correspondance */
$valeursDetailleesCategorie = array("edition"         =>     "&eacute;dition", 
                    "annoncespresse"    =>     "annonces presse", 
                    "plv"         =>     "PLV", 
                    "ecommunication"    =>     "e-communication");
/* génération des éléments du menu (groupes et éléments) */ 
$menuDeroulant ""; 
foreach ($listeCategoriseeReferences as $categorie => $ref)
{
    $menuDeroulant .= "<optgroup label=\"".$valeursDetailleesCategorie[
$categorie]."\">\n";
    foreach($ref as $element)
    {
            $menuDeroulant .= "\t<option value=\"$element\">$element</option>\n"
;
    }
    $menuDeroulant .= "</optgroup>\n";
}
/* $menuDeroulant vaut quelquechose comme :
<optgroup label="&eacute;dition">
    <option value="bla2-blaune-ref-en-edition">bla2-blaune-ref-en-edition</option>
    <option value="une-rtdfxcefsdfsf-en-plv">une-rtdfxcefsdfsf-en-plv</option>
</optgroup>
<optgroup label="PLV">
    <option value="une-refsdfsf-en-plv">une-refsdfsf-en-plv</option>
</optgroup>
<optgroup label="e-communication">
    <option value="site-web-les-villanelles">site-web-les-villanelles</option>
</optgroup> 
*/


/* ***** ETAPE 3 : affichage du menu déroulant dans le formulaire ***** */
echo "<form action=\"#mettreajour\" method=\"get\">\n".
"<p><label for=\"l_choix\">Choisir une création : <select name=\"ref\"" .
" id=\"l_choix\">
$menuDeroulant
</select> <input type=\"submit\" value=\"Afficher les donn&eacute;es\" /></p>
</form>";
// génère une URL du genre votrefichier.php?ref=bla-bli-blo

?>

 

Fonctions du code

: Retourne une clé d'un tableau associatif - (PHP 4, PHP 5)
: Envoie une requête à un serveur MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
: Crée un tableau - (PHP 4, PHP 5)
: Lit une ligne de résultat MySQL dans un tableau associatif - (PHP 4 >= 4.0.3, PHP...
: Affiche une chaîne de caractères - (PHP 4, PHP 5)
Ajouter un commentaire
Code de sécurité

Attention: Les champs marqués d'une étoile * sont obligatoires
 
Librairie PHP

Connexion

 
 

Formulaires

 
 

PHP

 
 
 
 
    Offres d'emploi

Plus de 500 offres d'emploi PHP/MySQL

Offres d'emploi
 
    Editeur PHP
 
        Publicité