IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Menu en fonction d'une liste


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Menu en fonction d'une liste
    Bonjour à tous,

    Je cherche à faire une fonction PHP qui devrait faire le travail suivant :

    - Je lui transmets un array comme ceci : function mafonction ( $montableau ) {}
    - Ce tableau est une liste de fichier contenu dans un dossier, donc pour être sûr que tout est bien trié par ordre croissant : sort ( $montableau );

    Jusque là rien de bien compliqué, on ne s'occupe pas des extensions de fichier dans ma question car ils ont été enlevés avant de transmettre l'array à la fonction et les noms ont été nettoyé, de tout caractère qui ne serait pas compris entre 0-9 et a-z et les underscores sont convertis en espaces, puis le tout en majuscule , ce qui nous donnerait, par exemple un array qui aurait 14 enregistrements sous cette forme :
    ACTIONS A FAIRE LISTE
    ACTIONS A FAIRE TYPE
    CONTACTS LISTE
    CONTACTS ADRESSES
    CONTACTS INFOS BANCAIRES
    CONTACTS INFOS JURIDIQUES
    CONTACTS ORIGINE
    CONTACTS TELEPHONES
    UTILISATEURS LISTE
    UTILISATEURS COORDONNEES
    UTILISATEURS INFOS BANCAIRES
    UTILISATEURS INFOS JURIDIQUES
    UTILISATEURS INFOS SUPPLEMENTAIRES
    UTILISATEURS TELEPHONES
    Jusque là je sais faire, ce que j'aimerai c'est obtenir en retour est un tableau html qui aurait cette forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    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
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>TEST</title>
    </head>
    <body>
    <table border="0">
    <tr>
    <!-- Première colonne -->
    <td valign="top">
    <table border="0">
    <tr><th>ACTIONS A FAIRE</th></tr>
    <tr><td>- <a href="index.php?table=actions_a_faire_liste">Liste</a></td></tr>
    <tr><td>- <a href="index.php?table=actions_a_faire_type">Type</a></td></tr>
    </table>
    </td>
    <!-- Deuxième colonne -->
    <td valign="top">
    <table border="0">
    <tr><th>CONTACTS</th></tr>
    <tr><td>- <a href="index.php?table=contacts_liste">Liste</a></td></tr>
    <tr><td>- <a href="index.php?table=contacts_adresse">Adresses</a></td></tr>
    <tr><td>- <a href="index.php?table=contacts_origines">Origines</a></td></tr>
    <tr><td>- <a href="index.php?table=contacts_telephones">Telephones</a></td></tr>
    <!-- SOUS COLONNE -->
    <tr>
    <td>
    <table border="0">
    <tr><th>CONTACTS INFOS</th></tr>
    <tr><td>- <a href="index.php?table=contacts_infos_bancaires">Bancaires</a></td></tr>
    <tr><td>- <a href="index.php?table=contacts_infos_juridiques">Juridiques</a></td></tr>
    </table>
    </td>
    </tr>
    <!-- Fin de la sous-colonne -->
    </tr>
    </table>
    </td>
    <!-- Troisième colonne -->
    <td valign="top">
    <table border="0">
    <tr><th>UTILISATEURS</th></tr>
    <tr><td>- <a href="index.php?table=utilisateurs_liste">Liste</a></td></tr>
    <tr><td>- <a href="index.php?table=utilisateurs_coordonnees">Coordonnees</a></td></tr>
    <tr><td>- <a href="index.php?table=utilisateurs_telephones">Telephones</a></td></tr>
    <!-- SOUS COLONNE -->
    <tr>
    <td>
    <table border="0">
    <tr><th>UTILISATEURS INFOS</th></tr>
    <tr><td>- <a href="index.php?table=utilisateurs_infos">Bancaires</a></td></tr>
    <tr><td>- <a href="index.php?table=utilisateurs_infos_juridiques">Juridiques</a></td></tr>
    <tr><td>- <a href="index.php?table=utilisateurs_infos_complementaires">Complementaires</a></td></tr>
    </table>
    </td>
    </tr>
    <!-- Fin de la sous-colonne -->
    </table>
    </td>
    </tr>
    </table>
    </body>
    </html>
    Merci à vous en attendant

  2. #2
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Aurais-tu un exemple de ce que tu as essayé à nous montrer ?

  3. #3
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    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
     
    <?php
    // Tableau pour l'exemple
    $example_tab=array(
    	'ACTIONS A FAIRE LISTE',
    	'ACTIONS A FAIRE TYPE',
    	'CONTACTS LISTE',
    	'CONTACTS ADRESSES',
    	'CONTACTS INFOS BANCAIRES',
    	'CONTACTS INFOS JURIDIQUES',
    	'CONTACTS ORIGINE',
    	'CONTACTS TELEPHONES',
    	'UTILISATEURS LISTE',
    	'UTILISATEURS COORDONNEES',
    	'UTILISATEURS INFOS BANCAIRES',
    	'UTILISATEURS INFOS JURIDIQUES',
    	'UTILISATEURS INFOS SUPPLEMENTAIRES',
    	'UTILISATEURS TELEPHONES'
    );
     
    // Convertion du tableau original en tableau multi-dimensionnel
    function get_Data($source){
    	if(!is_array($source))return false;
    	$str=trim(implode("\n",$source));
    	if($str==='')return false;
    	if(!@preg_match_all('/^((?:[A-Z0-9_]+ ){3}|(?:([A-Z0-9_]+)( [A-Z0-9_]+)?) )([A-Z0-9_]+)$/m', $str, $res, PREG_PATTERN_ORDER))return false;
    	$tab=array();
    	for($i=0; $i<count($res[0]); $i++){
    		$k1=(isset($res[2][$i])and($res[2][$i]!==''))?strtolower($res[2][$i]):strtolower($res[1][$i]);
    		$k2=(isset($res[3][$i]))?trim(strtolower($res[3][$i])):'';
    		$k3=(isset($res[4][$i]))?trim(strtolower($res[4][$i])):'';
    		$k1=str_replace(' ','_',trim($k1));
    		if($k2!=='')
    			$tab[$k1][$k2][]=$k3;
    		else
    			$tab[$k1][]=$k3;
    	}
    	return $tab;
    }
     
    // Création du code HTML à partir du tableau multi-dimensionnel
    function get_HTML($source){
    	if(!is_array($source))return '';
    	$htm="<table><tr>\n";
    	foreach($source as $k=>$list){
    		$title=strtolower(str_replace('_',' ',$k));
    		$htm.="\t<td><table>\n\t\t<tr><th>".strtoupper($title)."</th></tr>\n";
    		$htm2='';
    		foreach($list as $key=>$item){
    			if(is_array($item)){
    				$htm2="\t\t<tr><td><table>\n\t\t\t<tr><th>".strtoupper($key)."</th></tr>\n";
    				for($i=0; $i<count($item); $i++){
    					$anchor=$k.'_'.$key.'_'.$item[$i];
    					$htm2.="\t\t\t<tr><td><a href=\"index.php?table=".$anchor."\">".ucfirst($item[$i])."</a></td></tr>\n";
    				}
    				$htm2.="\t\t</table></td></tr>\n";
    			}
    			else{
    				$anchor=$k.'_'.$item;
    				$htm.="\t\t<tr><td><a href=\"index.php?table=".$anchor."\">".ucfirst($item)."</a></td></tr>\n";
    			}
    		}
    		$htm.=$htm2."\t</table></td>\n";
    	}
    	$htm.="</tr></table>\n";
    	return $htm;
    }
    ?>
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <meta charset="UTF-8">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Test</title>
    <style type="text/css"><!--
    table {border:none}
    th {text-align:left}
    td {vertical-align:top}
    -->
    </style>
    </head>
    <body>
    <?php
    // Convertion et affichage
    $tab=get_Data($example_tab);
    if($tab!==false){
    	$html=get_HTML($tab);
    	echo $html;
    }
    ?>
    </body>
    </html>

Discussions similaires

  1. Modifier une image dynamiquement en fonction d'une liste
    Par metatron dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/11/2006, 17h33
  2. [formulaire]appliquer un filtre en fonction d'une liste
    Par hansaplast dans le forum Access
    Réponses: 1
    Dernier message: 24/07/2006, 12h31
  3. afficher un lien en fonction d'une liste
    Par bigbabou dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/05/2006, 02h48
  4. choisir un fichier .js à éxécuter en fonction d'une liste
    Par bikerman dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 10/04/2006, 14h48
  5. Comment rappeler une fonction dans une liste déroulante
    Par strogos dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/05/2005, 23h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo