Page 1 sur 1

Menu déroulant avec include

Posté : 01 oct. 2011, 21:13
par cross
Bonjour à tous,

Je me suis lancé depuis peu dans le php et j'ai créé la liste suivante qui me renvois la liste des fichiers (il n'y a que des .php) que j'ai dans un de mes dossiers et me permet de les afficher dans la page.

Dorénavant, je cherche à faire un include de ces fichiers dans ma page active et c'est là que je patauge depuis quelques jours sans trouver la solution sur ce forum pourtant très complet.

Help ?

Voici mon code :
 <select name="selection" onchange="document.location.href = this.options[this.selectedIndex].value;">
        <option selected="selected">Faites votre choix</option>
	<?php
    $dirname = './resultats/';
    $dir = opendir($dirname);
    while($file = readdir($dir)) {
    if($file != '.' && $file != '..' && !is_dir($dirname.$file))
    {
		$file_name = substr($file,0, -4);
	echo '<option value="'.$dirname.$file.'">'.$file_name.'</option><br />';
    }
    }
    closedir($dir);
    ?> 
</select>

Re: Menu déroulant avec include

Posté : 01 oct. 2011, 21:18
par xTG
Hum, pas sûr de comprendre la nature du problème.
include('monScript.php");
??

Re: Menu déroulant avec include

Posté : 01 oct. 2011, 21:45
par cross
Le code
<select name="selection" onchange="document.location.href = this.options[this.selectedIndex].value;">
me permet d'ouvrir le fichier php que je sélectionne dans mon menu déroulant dans ma feuille _parent.

J'aimerais plûtot faire un include avec une ligne ressemblant à

<select name="selection" onchange=include "this.options[this.selectedIndex].value;">

Re: Menu déroulant avec include

Posté : 02 oct. 2011, 08:30
par xTG
Ah oui ! Beh faut pas tout mélanger...
PHP s’exécute côté serveur, Javascript côté client !!!
Donc soit tu recharges la page et tu transmets la valeur du select pour inclure en PHP.
Soit tu utilises de l'Ajax pour récupérer le contenu du fichier et modifier le DOM pour l'inclure.

Re: Menu déroulant avec include

Posté : 03 oct. 2011, 23:11
par cross
Bon j'ai trouvé ma solution :
<div id="tmeplatemo_container">
<div id="tmeplatemo_content">
<p>Merci de sélectionner une étape :
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<p>
<select name="choix" id="choix">
<?php
$dirname = './resultats/';
$dir = opendir($dirname);
while($file = readdir($dir)) {
if($file != '.' && $file != '..' && !is_dir($dirname.$file)) {
$file_name = substr($file, 3);
$file_name = substr($file_name,0, -4);

echo '<option value="'.$dirname.$file.'">'.$file_name.'</option><br />';
}
}
closedir($dir);
?>
</select>
<input type="submit" value="OK" />
</p>
</form>
</p>
</div>
<p>
<?php
$choix = !empty($_POST['choix']) ? $_POST['choix'] : '';
if ($choix) {
include $choix;
}
?>

</p>
<p>&nbsp;</p>
</div> <!-- end of container -->
Mon (nouveau) problème serait donc d'afficher dans mon menu déroulant les fichiers classés en alphanumérique (ils commencent par 101/102/103...)

Re: Menu déroulant avec include

Posté : 04 oct. 2011, 00:18
par moogli
salut,

essai glob + sort (ou une autre dans le style)

@+

Re: Menu déroulant avec include

Posté : 04 oct. 2011, 00:36
par cross
Le problème c'est que je ne trouve pas où placer le tri dans mon code.

A chaque fois (au niveau du tri) tout marche nickel en localhost mais pas quand je l'héberge.

Re: Menu déroulant avec include

Posté : 04 oct. 2011, 00:52
par moogli
quels exemple de tri ?

En gros il faut mettre tous les fichiers (qui sont intéressant) dans un tableau et utiliser sort (ou une autre fonction de tri de tableau).

Il est aussi possible d'utiliser SQLite pour des fonctions de tri plus avancées.

@+

Re: Menu déroulant avec include

Posté : 04 oct. 2011, 08:36
par cross
Mon menu echo m'envois la liste des fichiers du repertoire que j'ai désigné en enlevant les 4 derniers caractères (.php) et les 3 premiers correspondant à un chrono qui va de 100 à 199.

J'aimerais donc trier ce chrono en ordre croissant pour avoir :
100
101
102 ...

et non plus 107
105
104
101
106
103...

Re: Menu déroulant avec include

Posté : 04 oct. 2011, 08:52
par xTG