Liste déroulante en PHP
Graindesable
Messages postés
3
Statut
Membre
-
Graindesable Messages postés 3 Statut Membre -
Graindesable Messages postés 3 Statut Membre -
Bonsoir,
Je suis l'administratrice d'un forum de collectionneurs de sable, et je mets à disposition les listes d'échanges des membres qui le souhaitent.
Pour cela, je développe une page qui affiche une liste déroulante, générée en PHP avec la fonction readdir, et qui permet de consulter des fichiers .xls, stockés dans un même dossier "files".
Ensuite j'alimente la liste déroulante. A chacune des valeurs de liste obtenue, j'associe un pseudo.
1er problème : les pseudos sont listés plusieurs fois ....
2ème problème : Pour ouvrir le fichier choisi, j'utilise la méthode POST et un fichier de traitement en PHP, aucun fichier ne s'ouvre à la sélection d'un pseudo.
La page PHP qui génère la liste, la page PHP de traitement "ouvrir.php" et le dossier "files" contenant tous les fichiers xls, sont dans un même dossier.
le code de la page où la liste est créée :
<FORM action="ouvrir.php" method=post>
<?php
echo "<select name ='liste' onchange=\"this.form.submit()\">
<option value = ''> --- Choisir une Liste à consulter --- </option>";
$dir = opendir(files);
while($fic = readdir($dir))
{
if($fic != ".." && $fic != ".")
{
echo "<OPTION value = '$fic[0]'>Amely</option>";
echo "<OPTION value = '$fic[1]'>Béthyle</option>";
echo "<OPTION value = '$fic[2]'>BlueDevil</option>";
echo "<OPTION value = '$fic[3]'>Bougeotte</option>";
echo "<OPTION value = '$fic[4]'>Bulma</option>";
echo "<OPTION value = '$fic[5]'>Catia</option>";
echo "<OPTION value = '$fic[6]'>Don Gigi</option>";
echo "<OPTION value = '$fic[7]'>Freddy</option>";
echo "<OPTION value = '$fic[8]'>Gilbert</option>";
echo "<OPTION value = '$fic[9]'>Houbi</option>";
echo "<OPTION value = '$fic[10]'>Jack</option>";
echo "<OPTION value = '$fic[11]'>Jonani</option>";
echo "<OPTION value = '$fic[12]'>Keywawa</option>";
echo "<OPTION value = '$fic[13]'>MoniqueH</option>";
echo "<OPTION value = '01'>Myrtille</option>";
echo "<OPTION value = '$fic[14]'>Patrick</option>";
echo "<OPTION value = '02'>Pouicpouic</option>";
echo "<OPTION value = '$fic[15]'>Pujapati</option>";
echo "<OPTION value = '$fic[16]'>Sap</option>";
echo "<OPTION value = '$fic[17]'>Toureloure</option>";
echo "<OPTION value = '03'>Vanille</option>";
}
}
echo "</select>";
closedir($dir);
?>
le code du fichier de traitement "ouvrir.php" développé au petit bonheur la chance :
<?php
// le contenu de $_POST est stocké dans une variable
$ouvrir = $_POST["liste"];
if ($ouvrir = '01'){
header ('Location: http://www-------01.xls');}
if ($ouvrir = '02'){
header ('Location: http://www ------02.xls');}
if ($ouvrir = '03'){
header ('Location: http://www.-----------03.xls');}
$f=fopen("$ouvrir","r");
fclose("$ouvrir");
?>
Il faut savoir que dans la liste déroulante, 3 pseudos n'ont pas de fichier .xls associé mais des adresses URL, car les fichiers sont sur des serveurs Web.
Vous pouvez voir ce que ça donne ici : http://www.couleurvanille.com/listes2/index.php
Je remercie tous ceux qui voudront bien m'aider à trouver des solutions, pour afficher une liste qui ne contient les pseudos qu'une seule fois et pour ouvrir le fichier associé au pseudo choisi dans la liste.
Très bonne soirée.
Je suis l'administratrice d'un forum de collectionneurs de sable, et je mets à disposition les listes d'échanges des membres qui le souhaitent.
Pour cela, je développe une page qui affiche une liste déroulante, générée en PHP avec la fonction readdir, et qui permet de consulter des fichiers .xls, stockés dans un même dossier "files".
Ensuite j'alimente la liste déroulante. A chacune des valeurs de liste obtenue, j'associe un pseudo.
1er problème : les pseudos sont listés plusieurs fois ....
2ème problème : Pour ouvrir le fichier choisi, j'utilise la méthode POST et un fichier de traitement en PHP, aucun fichier ne s'ouvre à la sélection d'un pseudo.
La page PHP qui génère la liste, la page PHP de traitement "ouvrir.php" et le dossier "files" contenant tous les fichiers xls, sont dans un même dossier.
le code de la page où la liste est créée :
<FORM action="ouvrir.php" method=post>
<?php
echo "<select name ='liste' onchange=\"this.form.submit()\">
<option value = ''> --- Choisir une Liste à consulter --- </option>";
$dir = opendir(files);
while($fic = readdir($dir))
{
if($fic != ".." && $fic != ".")
{
echo "<OPTION value = '$fic[0]'>Amely</option>";
echo "<OPTION value = '$fic[1]'>Béthyle</option>";
echo "<OPTION value = '$fic[2]'>BlueDevil</option>";
echo "<OPTION value = '$fic[3]'>Bougeotte</option>";
echo "<OPTION value = '$fic[4]'>Bulma</option>";
echo "<OPTION value = '$fic[5]'>Catia</option>";
echo "<OPTION value = '$fic[6]'>Don Gigi</option>";
echo "<OPTION value = '$fic[7]'>Freddy</option>";
echo "<OPTION value = '$fic[8]'>Gilbert</option>";
echo "<OPTION value = '$fic[9]'>Houbi</option>";
echo "<OPTION value = '$fic[10]'>Jack</option>";
echo "<OPTION value = '$fic[11]'>Jonani</option>";
echo "<OPTION value = '$fic[12]'>Keywawa</option>";
echo "<OPTION value = '$fic[13]'>MoniqueH</option>";
echo "<OPTION value = '01'>Myrtille</option>";
echo "<OPTION value = '$fic[14]'>Patrick</option>";
echo "<OPTION value = '02'>Pouicpouic</option>";
echo "<OPTION value = '$fic[15]'>Pujapati</option>";
echo "<OPTION value = '$fic[16]'>Sap</option>";
echo "<OPTION value = '$fic[17]'>Toureloure</option>";
echo "<OPTION value = '03'>Vanille</option>";
}
}
echo "</select>";
closedir($dir);
?>
le code du fichier de traitement "ouvrir.php" développé au petit bonheur la chance :
<?php
// le contenu de $_POST est stocké dans une variable
$ouvrir = $_POST["liste"];
if ($ouvrir = '01'){
header ('Location: http://www-------01.xls');}
if ($ouvrir = '02'){
header ('Location: http://www ------02.xls');}
if ($ouvrir = '03'){
header ('Location: http://www.-----------03.xls');}
$f=fopen("$ouvrir","r");
fclose("$ouvrir");
?>
Il faut savoir que dans la liste déroulante, 3 pseudos n'ont pas de fichier .xls associé mais des adresses URL, car les fichiers sont sur des serveurs Web.
Vous pouvez voir ce que ça donne ici : http://www.couleurvanille.com/listes2/index.php
Je remercie tous ceux qui voudront bien m'aider à trouver des solutions, pour afficher une liste qui ne contient les pseudos qu'une seule fois et pour ouvrir le fichier associé au pseudo choisi dans la liste.
Très bonne soirée.
A voir également:
- Liste déroulante en PHP
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
- Easy php - Télécharger - Divers Web & Internet
4 réponses
Salut!
Pour les noms qui se répètent, je te conseille d'utiliser DISTINCT :
donc tu auras select distinct from......
Pour ton deuxième problème,es tu sûr que les variables sont postées?fait un print_r($_POST) au debut de ton script ouvrir.php pour voir s'il y a quelque chose de posté!
Pour les noms qui se répètent, je te conseille d'utiliser DISTINCT :
L'option DISTINCT permet de ne conserver que des lignes distinctes, en éliminant les doublons
donc tu auras select distinct from......
Pour ton deuxième problème,es tu sûr que les variables sont postées?fait un print_r($_POST) au debut de ton script ouvrir.php pour voir s'il y a quelque chose de posté!
Y'a pas moyen d'enregistrer simplement dans la base de données les pseudos des gens dans un champs, leurs fichiers dans un autre et s'il s'agit d'un fichier sur le serveur ou d'un fichier distant ?
Ensuite, avec un if, changer l'adresse de destination pour aller chercher le fichier dans l'un ou dans l'autre des deux cas via un controle lors de la réception de $_POST.
Ensuite, avec un if, changer l'adresse de destination pour aller chercher le fichier dans l'un ou dans l'autre des deux cas via un controle lors de la réception de $_POST.
Merci pour vos réponses
Mais il ne s'agit pas d'une base de données.
Donc pas de select from
regardez le code, je liste le contenu d'un dossier qui se trouve être sur le serveur au même endroit que le code.
j'ai créé un dossier "liste" dans lequel se trouve les deux fichiers PHP et un dossier files qui contient tous les fichiers xls.
Pas de base de données associée à cette requête.
Merci encore pour votre aide
Mais il ne s'agit pas d'une base de données.
Donc pas de select from
regardez le code, je liste le contenu d'un dossier qui se trouve être sur le serveur au même endroit que le code.
j'ai créé un dossier "liste" dans lequel se trouve les deux fichiers PHP et un dossier files qui contient tous les fichiers xls.
Pas de base de données associée à cette requête.
Merci encore pour votre aide
Je viens de tester le print_r($_POST)
il y a une erreur sur la ligne 10, c'est à dire :
if ($ouvrir = '01'){
Si je retire les lignes comprises dans le if, l'erreur se trouve sur le fopen ...
ce qui veut dire que le code du fichier de traitement est totalement faux .....
Quel est le code qui permet d'ouvrir un fichier xls (ou autre j'imagine) sélectionné dans une liste déroulante ?
Merciiiiiiiiiii
il y a une erreur sur la ligne 10, c'est à dire :
if ($ouvrir = '01'){
Si je retire les lignes comprises dans le if, l'erreur se trouve sur le fopen ...
ce qui veut dire que le code du fichier de traitement est totalement faux .....
Quel est le code qui permet d'ouvrir un fichier xls (ou autre j'imagine) sélectionné dans une liste déroulante ?
Merciiiiiiiiiii