Comment créer une liste déroulante

cs_JahWon Messages postés 11 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 24 août 2009 - 23 août 2009 à 17:04
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 - 25 août 2009 à 20:55
Bonjour,

Je suis totalement débutant en code PHP et j'aimerais savoir comment créer une liste déroulante de base.

Je m'explique :

Je veux classer des livres sur mon site (une sorte d'indexage)

Par exemple :

Livres
> A
>>A..
> B
>>B..
> C
>>C..
> D
>>D..

Comment puis-je m'y prendre sachant que je veux tout classer manuellement.

Merci d'avance
JahWon

9 réponses

Tonio_35 Messages postés 567 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 30 août 2011 11
24 août 2009 à 09:11
Bonjour JahWon,

Pouvez vous répéter la question ?

Tu veux pas faire par hasard un tableau en php ?
<?php
$biblio['A']['Abimes']
$biblio['A']['Accueil']
$biblio['B']['Bienvenue']
$biblio['C']['Cavaliers']
?>

Après tu peux faire une fonction pour trier ta liste...

T'es même pas obligé de faire des sous tableaux...
<?php
$biblio['Abimes']
$biblio['Accueil']
$biblio['Bienvenue']
$biblio['Cavaliers']
?>

Le tri serais plus simple par la suite...

Pourquoi n'utilise tu pas une base de donnée ?

Tonio
0
cs_JahWon Messages postés 11 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 24 août 2009
24 août 2009 à 10:01
C'est pas exactement un tableau.

Ce serait plus pour faire comme des dossiers mais sur un site internet. J'aimerais exactement la même présentation de mon disque dur avec ma bibliothèque de PDF sur un site internet.

La présentation serait celle de windows donc pas de tableau sinon il serait énorme et ma base de donnée est mon disque dur.

Merci de ton aide
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
24 août 2009 à 12:59
Salut,

Pas certain d'avoir tout compris ...

Tu parles d'"énorme", combien cela représente t il d'enregistrements ?
Une liste déroulante de base (= un select) semble être une bien mauvaise idée dans ce cas (ne serait ce que pour une liste de 100 enregistrements)

Préfère sans doute la mise en place d'un moteur de recherche.

Il serait bien, je pense, que tu précises un peu plus le contexte.

Cordialement,



Kohntark -
0
Tonio_35 Messages postés 567 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 30 août 2011 11
24 août 2009 à 13:04
Tu as des PDF rangés dans un dossier, tu veux lister le contenu de ce dossier dans l'ordre alphabétique ?

Es ca ?

Si oui, voici un tit bout de code qui devrais t'aider :
<?php
// Chemin vers ton dossier
$path = "meslivres/";
$arr = array ();
// On vérifie la présence du dossier
if (!is_dir($path))
die('Path is not a folder');

// On ouvre le dossier
$handle = opendir($path);

// On parcour le dossier
while (($file = readdir($handle)) !== false)
{
$arr[] = $file;
}
closedir($handle);
asort($arr);

// A ce niveau tu as un tableau contenant le titre de
// tous tes pdf dans l'ordre, tu n'as plus qu'a le parcourir
// et a chaque fois que tu change de première lettre tu fais
// un niveau dans ta liste
$alphabet = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
  'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
  'U', 'V', 'W', 'X', 'Y', 'Z', '#', "Special Char");
echo "";
// On parcour l alphabet
foreach($alphabet as $letter)
{
// On affiche la lettre parcourur
echo "<li>".$letter."</li>
<li>
";
// Si on es rendus aux nombres
if($letter == "#")
{
// On affiche tout les fichiers commancant par un nombre
foreach($arr as $file)
{
// Si nombre
if(is_int($file[0]))
echo "<li>".$file."</li>";
}
}
elseif($letter == "Special Char")
{
// On affiche tout les fichiers ne commancant ni par un nombre ni par une lettre
foreach($arr as $file)
{
// Si specialchar
if(!eregi('[:alnum:]', $file[0]))
echo "<li>".$file."</li>";
}
}
else
{
// On affiche tout les fichiers commancant par une lettre
foreach($arr as $file)
{
// Si lettre
if(eregi('[:alpha:]', $file[0]))
echo "<li>".$file."</li>";
}
}
echo "</li>";
}
echo "";
?>



Tonio
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
24 août 2009 à 14:13
Salut Tonio,


Comme je le disais dans mon dernier post, le problème de fond est la présentation des données.
Afficher une trentaine de livres sous forme de LI ou de SELECT ça passe (encore que c'est très bloquant si le nb d'enregistrements tend à évoluer, ce qui est surement le cas), mais au delà c'est inutilisable.

Par ailleurs j'ai cru comprendre que les enregistrements étaient déjà en base de données, il serait alors dommage de ne pas implémenter un moteur de recherche en complément d'un affichage "windows like" (pas mal de scripts sur le net). Certes ça va s'avérer plus costaud à mettre en place, mais au moins JahWon ne sera pas bloqué.


Cordialement,

Kohntark -
0
cs_JahWon Messages postés 11 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 24 août 2009
24 août 2009 à 15:40
Salut Kohntark,

Merci de porter intérêt à mon post.

En effet, c'est un nombre énorme : il s'agit de 21 000 PDF en tout genre que je veux indexer dans un site web.

@ Kohntark : en effet, les PDF sont deja tous classé de A-Z ce qui facilite pour s'y retrouver.

@ Tonio_35 : Grand merci pour ce code dont je ne comprends pas tout le sens. Selon Kohntark, je vais faire face à un problème de blocage quant au nombre des PDF.
_______


Je n'avais pas pensé à la solution moteur de recherche. C'est un très bonne idée. De plus cela m'arrangerait pour trouver des PDF plus facilement que dans une recherche windows basique.

Je ne sais pas ce que tu entends par costaud mais je suis prêt si le jeu en vaut la chandelle.

Merci à vous deux.
JahWon
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
24 août 2009 à 16:26
Oula !! 21000 enregistrements !! Il va falloir bien penser le truc avant de se lancer, sinon c'est l'échec assuré.
Non pas que ce soit insurmontable, loin de là, mais le nombre de PDF est suffisant pour qu'une petite erreur de conception devienne vite bloquante.

Quel hébergement ?
Voir l'espace de stockage, les restrictions côté DB, bande passante, etc ...

Quel structure de DB ?
C'est important de s'y pencher en tout premier lieu et de bien la concevoir en fonction des buts à atteindre

etc ... etc ...

Il est primordial que tu établisses un petit cahier des charges avant de te lancer.


Je ne sais pas ce que tu entends par costaud

Sans vouloir te décourager, si tu es "totalement débutant en code PHP" ça risque d'être difficile à mettre en place et il te faudra beaucoup travailler.


Cordialement,


Kohntark -
0
cs_JahWon Messages postés 11 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 24 août 2009
24 août 2009 à 16:31
Hebergement : 000webhost et nom de domaine de l'hebergeur.

Je ne suis pas sur que tu ai compris que je ne veux PAS partager les PDF mais seulement les afficher sur mon site (indexer ma collection).

Je suis totalement débutant en code PHP mais je pensais qu'il existait des scripts sur internet pour faire cela.

Pour le travail pas de souci j'ai le temps et l'envie de le faire.

Merci
JahWon
0
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
25 août 2009 à 20:55
Bonsoir,

En cherchant bien et intelligemment via google, il doit exister des scripts qui se rapprochent de ce que tu veux faire.

Mais on est très loin du script basic bateau.. Ne serait-ce qu eparce que sans être une base immense, 21.000 fichiers à indexer, on ne peut pas le faire simplement..

Le premier point à définir est le mode d'indexation (mots clés, analyse des textes de PDF...)

Le second la structure des tables qui serviront aux requêtes.

Et enfin, la mise en oeuvre de tout ça, après mûre analyse.
0
Rejoignez-nous