Se connecter / S'enregistrer
Votre question

[PHP] récupérer le nom des images choisi sans écraser les précédentes

Tags :
  • Javascript
  • Programmation
Dernière réponse : dans Programmation
26 Avril 2011 15:43:07

Bonjours à tous.
Je vous explique mon problème.
<souligne>Fichier client :</souligne>
J'ai un fichier client qui regroupe 4 boutons, ses 4 boutons permettant de choisir 4 images d'un dossier que j'ai sur mon serveur.
<souligne>Fichier choix image</souligne>
L'affichage des images se fait à l'aide d'un fichier que j'ai nommé choiximage.php, qui m'affiche à l'écran toutes les images de mon dossier.
Une fois que le client clique sur l'image voulu, cela exécute mon code javascript qui enregistre le nom de l'image, et l'affiche à l'intérieur du bouton cliqué dans le fichier client.

j'éspère ne pas vous avoir perdu jusque la.

voici mon fichier javascript :

  1. function ajout(nomImg)
  2. {
  3. var inHide = document.getElementById('choix'); //l'input de type hidden
  4.  
  5. inHide.value = nomImg;
  6. alert('test '+ nomImg +' a bien été prise en compte !');
  7.  
  8. //récupération de la valeur de l'image dans l'url à l'aide de la variable inHide
  9. document.location.href="fichierclient.php?inHide="+inHide.value;
  10.  
  11.  
  12. }


comme vous pouvez le constater mon fichier javascript me redirige vers mon fichier client en mettant dans l'url le nom de l'image choisi, donc je récupère le nom comme ceci :

  1. if(isset($_GET['inHide']))
  2. {
  3.  
  4. $img = $_GET['inHide'];
  5. }


Le soucie est que si j'appuie sur le bouton2 qui permet au client de choisir une 2eme image, cela écrase la valeur de l'image 1...

Auriez vous une solution a mon problème s'il vous plait ?
En espérant avoir été assez claire =s

Je vous remercie par avance.

Autres pages sur : php recuperer nom images choisi ecraser precedentes

26 Avril 2011 16:05:41

Je ne t'avais pas fait une histoire de nom d'image séparé dans par des point virgule ? :D 
m
0
l
26 Avril 2011 16:10:53

Mon très cher DivX_666, encore une fois tu es l'un des seul répondant à mes question ^^
Effectivement, nous avions bien fais que je séléctionne 4 images dont leur nom sont séparé par des ; dans l'url...
Mais enfaite je voudrais faire quelque chose de plus générique et je n'arrive pas a trouver comment.
Comment faire si mon client ne veux choisir que 2 images au lieu de 4 ?

En gros mon client doit choisir au minimum 2 photos, mais peut en choisir au maximum 4.

Le soucie c'est que je n'arrive pas a me créer un fichier générique, es-que je dois obligatoirement créer un fichier javascript pour chaque bouton ?
m
0
l
Contenus similaires
26 Avril 2011 16:24:56

dans ce que nous avions fait, ta page qui contient toutes tes images où l'utilisateur peut cliquer contient un formulaire ou il n'y a que l'input caché et un bouton valider. A la réception de ce formulaire, la variable $_POST['nomInput'] contiendra les images séparé par des ;

Quelque soit le nombre d'images sélectionner. Pour vérifier qu'il en a choisis minimum 2 et maximum 4, c'est des vérifications javascript faisable.

As-tu garder ce que nous avions fait?
m
0
l
26 Avril 2011 16:33:16

Oui Oui j'ai gardé tout ce que nous avons réaliser ensemble.

pour le moment mon fichier est celui ci :

  1. echo '<img class="imgClick" src="'. $urlphoto .'/'. $Fichier .'" onclick="ajout(\''. $Fichier .'\');" />';
  2. echo '<input id="choix" name="choix" type="hidden" value="void" />';


à savoir que la fonction "ajout" se trouvant dans le paramètre "onclick" est le fichier javascript
m
0
l
26 Avril 2011 16:35:08

l'echo pour tes photos est une boucle c'est bien ca?
l'echo où se situe l'input doit être hors de la boucle. Il doit être écrit une seule fois au final.

Remet le code JavaScript de la fonction que je puisse m'en rappeler (j'ai la mémoire courte lool)
m
0
l
26 Avril 2011 16:38:12

Voila mon fichier du choix d'image :

  1. if (is_dir($nomRepertoire))
  2. {
  3. $dossier = opendir($nomRepertoire);
  4. while ($Fichier = readdir($dossier))
  5. {
  6. if ($Fichier != "." AND $Fichier != ".." AND (stristr($Fichier,'.gif') OR stristr($Fichier,'.jpg') OR stristr($Fichier,'.png') OR stristr($Fichier,'.bmp')))
  7. {
  8. // Hauteur de toutes les images
  9. $h_vign = "120";
  10. $taille = getimagesize($nomRepertoire."/".$Fichier);
  11. $reduc = floor(($h_vign*100)/($taille[1]));
  12. $l_vign = floor(($taille[0]*$reduc)/60);
  13.  
  14. /*echo '<a target="_blank" href="', $urlphoto, '/',$Fichier, '">';
  15. echo '<img src="', $urlphoto, '/',$Fichier, '" ';
  16. echo "width='$l_vign' height='$h_vign'>";
  17. echo "</a> ";*/
  18.  
  19. //echo '<a target="_blank" href="', $urlphoto, '/',$Fichier, '">';
  20. //echo '<img onclick="document.getElementById("inNomFic" ).value=\''. $Fichier .'\';window.open(\''. $urlphoto .'/'. $Fichier .'\');return false;" src="', $urlphoto, '/',$Fichier, '" ';
  21. //echo "width='$l_vign' height='$h_vign' /> ";
  22. //echo "</a> ";
  23. //echo '<img onclick="document.location(\'sequence.php?photo='. $Fichier .'\');" src="', $urlphoto, '/',$Fichier, '" />';
  24.  
  25.  
  26. // echo '<a href=clic.php?img='. $Fichier .'><img src="', $urlphoto, '/',$Fichier, '" /></a>';
  27. echo '<img class="imgClick" src="'. $urlphoto .'/'. $Fichier .'" onclick="ajout(\''. $Fichier .'\');" />';
  28. echo '<input id="choix" name="choix" type="hidden" value="void" />';
  29.  
  30.  
  31. }
  32. }
  33. closedir($dossier);
  34. }
  35. else
  36. {
  37. echo' Le répertoire spécifié n\'existe pas';
  38. }


Et voici mon fichier javascript :

  1. var nbImg = 0;
  2.  
  3. function ajout(nomImg)
  4. {
  5. var inHide = document.getElementById('choix'); //l'input de type hidden
  6. if(nbImg < 4) //pour ne pas sélectionner plus de 4 photos
  7. {
  8. nbImg++; //incrémentation du nombre de photo choisis
  9. if(nbImg == 1) //si c'est la première
  10. {
  11. inHide.value = nomImg;
  12. alert('Votre position '+ nomImg +' a bien été prise en compte !');
  13. // ici on peut ajouter un infobull pour avertir l'utilisateur que sa photo a été prise en compte
  14. }
  15. else //les suivantes
  16. {
  17. inHide.value = inHide.value+";"+nomImg;
  18. alert('Votre position ' + nomImg +' a bien été prise en compte !');
  19. // ici on peut ajouter un infobull pour avertir l'utilisateur que sa photo a été prise en compte
  20. if(nbImg == 4)
  21. {
  22. document.location.href="sequence.php?inHide="+inHide.value;
  23.  
  24. }
  25. }
  26. }
  27. else{
  28. alert('Vous ne pouvez pas séléctionner plus de 4 positions !');
  29. document.location.href="sequence.php?inHide="+inHide.value;
  30. }
  31. }
m
0
l
26 Avril 2011 16:56:25

Ok, alors la ligne 28 du fichier de choix image va aller juste après le "closedir()" déjà.
Et faut que ca donne ca :
  1. echo '<form action="sequence.php" method="post" name="formImg">';
  2. echo '<input id="choix" name="choix" type="hidden" value="void" />';
  3. echo '<input type="button" value="Valider" onclick="valider();" />';


Ensuite dans le JS tu rajoutes ca :
  1. function valider()
  2. {
  3. if((nbImg >= 2) && (nbImg <= 4))
  4. {
  5. document.formImg.submit();
  6. }else
  7. {
  8. alert("Nombres d'images choisis incorrect");
  9. }
  10. }


Ça devrait le faire ça :) 

EDIT :
la fonction précédente devient ceci :
  1. function ajout(nomImg)
  2. {
  3. var inHide = document.getElementById('choix'); //l'input de type hidden
  4. if(nbImg < 4) //pour ne pas sélectionner plus de 4 photos
  5. {
  6. nbImg++; //incrémentation du nombre de photo choisis
  7. if(nbImg == 1) //si c'est la première
  8. {
  9. inHide.value = nomImg;
  10. alert('Votre position '+ nomImg +' a bien été prise en compte !');
  11. // ici on peut ajouter un infobull pour avertir l'utilisateur que sa photo a été prise en compte
  12. }
  13. else //les suivantes
  14. {
  15. inHide.value = inHide.value+";"+nomImg;
  16. alert('Votre position ' + nomImg +' a bien été prise en compte !');
  17. // ici on peut ajouter un infobull pour avertir l'utilisateur que sa photo a été prise en compte
  18. if(nbImg == 4)
  19. {
  20. //document.location.href="sequence.php?inHide="+inHide.value;
  21. valider();
  22. }
  23. }
  24. }
  25. else{
  26. alert('Vous ne pouvez pas séléctionner plus de 4 positions !');
  27. //document.location.href="sequence.php?inHide="+inHide.value;
  28. valider();
  29. }
  30. }
m
0
l
26 Avril 2011 17:07:26

voila le code que j'ai adapté à l'aide de ta réponse ci dessus :

  1. $nomRepertoire = "./images/positions";
  2. if (is_dir($nomRepertoire))
  3. {
  4. $dossier = opendir($nomRepertoire);
  5. while ($Fichier = readdir($dossier))
  6. {
  7. if ($Fichier != "." AND $Fichier != ".." AND (stristr($Fichier,'.gif') OR stristr($Fichier,'.jpg') OR stristr($Fichier,'.png') OR stristr($Fichier,'.bmp')))
  8. {
  9. // Hauteur de toutes les images
  10. $h_vign = "120";
  11. $taille = getimagesize($nomRepertoire."/".$Fichier);
  12. $reduc = floor(($h_vign*100)/($taille[1]));
  13. $l_vign = floor(($taille[0]*$reduc)/60);
  14.  
  15. /*echo '<a target="_blank" href="', $urlphoto, '/',$Fichier, '">';
  16. echo '<img src="', $urlphoto, '/',$Fichier, '" ';
  17. echo "width='$l_vign' height='$h_vign'>";
  18. echo "</a> ";*/
  19.  
  20. //echo '<a target="_blank" href="', $urlphoto, '/',$Fichier, '">';
  21. //echo '<img onclick="document.getElementById("inNomFic" ).value=\''. $Fichier .'\';window.open(\''. $urlphoto .'/'. $Fichier .'\');return false;" src="', $urlphoto, '/',$Fichier, '" ';
  22. //echo "width='$l_vign' height='$h_vign' /> ";
  23. //echo "</a> ";
  24. //echo '<img onclick="document.location(\'sequence.php?photo='. $Fichier .'\');" src="', $urlphoto, '/',$Fichier, '" />';
  25.  
  26.  
  27. // echo '<a href=clic.php?img='. $Fichier .'><img src="', $urlphoto, '/',$Fichier, '" /></a>';
  28. echo '<img class="imgClick" src="'. $urlphoto .'/'. $Fichier .'" onclick="ajout(\''. $Fichier .'\');" />';
  29. //echo '<input id="choix" name="choix" type="hidden" value="void" />';
  30.  
  31.  
  32. }
  33. }
  34. closedir($dossier);
  35. echo '<form action="sequence.php" method="post" name="formImg">';
  36. echo '<input id="choix" name="choix" type="hidden" value="void" />';
  37. echo '<input type="button" value="Valider" onclick="valider();" />';
  38.  
  39. }
  40. else
  41. {
  42. echo' Le répertoire spécifié n\'existe pas';
  43. }


et j'ai rajouter ta fonction valider dans mon fichier js.

Mais cela ne fait pas ce que je demande... :( 

je te réexplique, sur ma page clients j'ai 4 boutons qui permettent de choisir chacun 1 image :
bouton 1 => choisir image 1
bouton 2 => choisir image 2
...

le soucie c'est que quand je clique sur le bouton 1 et que je choisi l'image voulu j'arrive bien a afficher l'image voulu, mais lorsque je clique sur le bouton 2, cela m'écrase la valeur de l'image 1... Et c'est pas cool lol
m
0
l
26 Avril 2011 17:14:18

Sur quoi mène tes boutons? là je te cache pas que je commence à me perdre lool qui est sur quelle page au final?

Essaie de faire un petit schéma du cheminement d'un utilisateur qui choisis ses images, du début à la fin.
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS