Page 1 sur 1

Liste déroulante - Affichage d'image

Posté : 27 mars 2016, 19:51
par samuelb
Bonjour à tous.

Je vous explique le but de cette page en php.

Premierement, le php effectue un scan de mon dossier /home/samuel
Il liste tous les fichiers .jpg | .avi (en gros photo, et vidéos) les affiches dans une liste déroulante jusque ici tout vas bien.

Maintenant j'aimerais que l'image selectionner dans la liste déroulante s'affiche dans une balise img sur la même page, et si c'est une vidéo dans une balise vidéo. C'est là que ça bloque.

Je n'ai aucune idée de où commencer.

Pour info dans ma liste déroulante les choix sont sous forme "le_nom_de_l'image.jpg"

Je vous mets mon code. (le code viens d'une grande partis de site web, mais j'essaye un maximum de le comprendre) :)
<!DOCTYPE html>
<HTML>
<link rel="stylesheet"  media="screen"  type="text/css"  href="styles.css" />
<title>PROJET BAC | 2016 </title> 
<HEAD>
</HEAD>

<BODY>
 <?php
// on créer la liste déroulante
$list = '<select name="vid" onchange="this.form.submit()">
<option value="">Choisissez une photo</option>'."\n";
$chemin = '/home/samuel/'; // à modifier
$dir = opendir($chemin);
while($file = readdir($dir)){
if( $file != '.' && $file != '..' && preg_match('#\.(jpe?g|avi|png)$#i', $file)) {
  $list .= '<option value="'.$file.'">'.$file.'</option>'."\n";
 }
}
closedir($dir);
$list .= '</select>'."\n";

// on fait notre formulaire
echo '<form action="photo.php" method="GET">
 <div>
  '.$list.'
 </div>
<form>';

//$chemin = '/home/samuel/'; // à modifier
//if(empty($_GET['vid']) OR !is_file($chemin.$_GET['vid'])){
// header('Location: test.php');
// exit();
//}
echo '<img class="photo_selection" src="/home/samuel/<?php  echo($fichier); ?>" height="480" width="360" />';
echo '<a href="test.php">Retour...</a>'

?>
</BODY>
</HTML>

Re: Liste déroulante - Affichage d'image

Posté : 27 mars 2016, 20:21
par or 1
changer onchange="this.form.submit()"
pour appeler une fonction javascript maison
cette fonction va récupérer la valeur sélectionnée de la liste déroulante et changer le innerhtml d'un élément html pour y mettre une balise image ou le code d'affichage d'une vidéo.

Re: Liste déroulante - Affichage d'image

Posté : 27 mars 2016, 20:46
par samuelb
Allez c'est partis! Je vous tiendrais au courant de l'avancement du projet.
Grand merci :wink:

Re: Liste déroulante - Affichage d'image

Posté : 27 mars 2016, 21:59
par samuelb
Avant de passer sur du javascript, je me suis rappelé du $_GET.
J'ai donc voulus m'en servir pour essayer. #-o
Je vous rapelle le principe
- un scan du dossier /home/samuel (que des jpg | avi )
- l'utilisateur choisis la photo qu'il veut dans une liste deroulante appellé vid
- quand l'utilisateur clic sur la photo de son choix elle doit s'afficher dans un petit cadre à coter.
Voici mon code qui me retourne une page blanche (quand je la commente la page redevient 'normale'
echo '<img class="photo_selection" src="/home/samuel/<?php echo $_GET['vid']; ?>" height="480" width="360" />';

Re: Liste déroulante - Affichage d'image

Posté : 27 mars 2016, 22:00
par samuelb
EDIT : les noms des images dans la liste déroulante sont au formats lenom.l'extension

Re: Liste déroulante - Affichage d'image

Posté : 27 mars 2016, 22:01
par or 1
echo '<img class="photo_selection" src="/home/samuel/'.$_GET['vid'].'" height="480" width="360" />';

Re: Liste déroulante - Affichage d'image

Posté : 27 mars 2016, 22:13
par samuelb
tout d'abord merci pour la correction de la syntaxe.

Le problème est toujours là... Quand je vais cliquer sur l'image par exemple photo.jpg dans le repertoire /home/samuel/
il me dirige sur cette page : http://localhost/test.php?vid=photo.jpg

je ne comprend pas pourquoi il écrit vid et non pas /home/samuel/photo.jpg :?:

Re: Liste déroulante - Affichage d'image

Posté : 27 mars 2016, 22:22
par samuelb
je pense que ce que je dis n'est pas très clair(...la fatigue)
quand je clic sur la liste déroulante sur (photo.jpg) il me renvois sur l'url /test.php?vid=photo.jpg
là c'est plus clair j'espere

Re: Liste déroulante - Affichage d'image

Posté : 27 mars 2016, 22:46
par samuelb
EDIT :
avec
echo '<img class ="photo_selection" src="'.$_GET[vid].'" height="480" width="360"/>';
où les images sont placés dans /var/www/html/ la page arrive à charger les images.

le problème vient donc du /home/samuel?

Re: Liste déroulante - Affichage d'image

Posté : 27 mars 2016, 22:47
par or 1
si test.php contient une ligne du genre :
echo '<img class="photo_selection" src="/home/samuel/'.$_GET['vid'].'" height="480" width="360" />';
alors cela n'est en rien un problème.
reste à savoir s'il existe bien un répertoire home/samuel à la racine du site web, et non à la racine de la machine.

trop tard mais je laisse car cela répond en partie à la question.

Re: Liste déroulante - Affichage d'image

Posté : 29 mars 2016, 10:28
par samuelb
voilà mon erreur je lui demande de pointer sur /home/samuel en pensant qu'il pourrait accéder directement à la machine je vais donc déplacer le dossier qu'il scan a la racine du site web.
Encore merci