[PHP] récupérer le nom des images choisi sans écraser les précédentes
Dernière réponse : dans Programmation
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 :
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 :
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.
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 :
function ajout(nomImg)
{
var inHide = document.getElementById('choix'); //l'input de type hidden
inHide.value = nomImg;
alert('test '+ nomImg +' a bien été prise en compte !');
//récupération de la valeur de l'image dans l'url à l'aide de la variable inHide
document.location.href="fichierclient.php?inHide="+inHide.value;
}
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 :
if(isset($_GET['inHide']))
{
$img = $_GET['inHide'];
}
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
Lassé par la pub ? Créez un compte
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 ?
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 ?
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?
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?
Oui Oui j'ai gardé tout ce que nous avons réaliser ensemble.
pour le moment mon fichier est celui ci :
à savoir que la fonction "ajout" se trouvant dans le paramètre "onclick" est le fichier javascript
pour le moment mon fichier est celui ci :
echo '<img class="imgClick" src="'. $urlphoto .'/'. $Fichier .'" onclick="ajout(\''. $Fichier .'\');" />';
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
Voila mon fichier du choix d'image :
Et voici mon fichier javascript :
if (is_dir($nomRepertoire))
{
$dossier = opendir($nomRepertoire);
while ($Fichier = readdir($dossier))
{
if ($Fichier != "." AND $Fichier != ".." AND (stristr($Fichier,'.gif') OR stristr($Fichier,'.jpg') OR stristr($Fichier,'.png') OR stristr($Fichier,'.bmp')))
{
// Hauteur de toutes les images
$h_vign = "120";
$taille = getimagesize($nomRepertoire."/".$Fichier);
$reduc = floor(($h_vign*100)/($taille[1]));
$l_vign = floor(($taille[0]*$reduc)/60);
/*echo '<a target="_blank" href="', $urlphoto, '/',$Fichier, '">';
echo '<img src="', $urlphoto, '/',$Fichier, '" ';
echo "width='$l_vign' height='$h_vign'>";
echo "</a> ";*/
//echo '<a target="_blank" href="', $urlphoto, '/',$Fichier, '">';
//echo '<img onclick="document.getElementById("inNomFic" ).value=\''. $Fichier .'\';window.open(\''. $urlphoto .'/'. $Fichier .'\');return false;" src="', $urlphoto, '/',$Fichier, '" ';
//echo "width='$l_vign' height='$h_vign' /> ";
//echo "</a> ";
//echo '<img onclick="document.location(\'sequence.php?photo='. $Fichier .'\');" src="', $urlphoto, '/',$Fichier, '" />';
// echo '<a href=clic.php?img='. $Fichier .'><img src="', $urlphoto, '/',$Fichier, '" /></a>';
echo '<img class="imgClick" src="'. $urlphoto .'/'. $Fichier .'" onclick="ajout(\''. $Fichier .'\');" />';
echo '<input id="choix" name="choix" type="hidden" value="void" />';
}
}
closedir($dossier);
}
else
{
echo' Le répertoire spécifié n\'existe pas';
}
Et voici mon fichier javascript :
var nbImg = 0;
function ajout(nomImg)
{
var inHide = document.getElementById('choix'); //l'input de type hidden
if(nbImg < 4) //pour ne pas sélectionner plus de 4 photos
{
nbImg++; //incrémentation du nombre de photo choisis
if(nbImg == 1) //si c'est la première
{
inHide.value = nomImg;
alert('Votre position '+ nomImg +' a bien été prise en compte !');
// ici on peut ajouter un infobull pour avertir l'utilisateur que sa photo a été prise en compte
}
else //les suivantes
{
inHide.value = inHide.value+";"+nomImg;
alert('Votre position ' + nomImg +' a bien été prise en compte !');
// ici on peut ajouter un infobull pour avertir l'utilisateur que sa photo a été prise en compte
if(nbImg == 4)
{
document.location.href="sequence.php?inHide="+inHide.value;
}
}
}
else{
alert('Vous ne pouvez pas séléctionner plus de 4 positions !');
document.location.href="sequence.php?inHide="+inHide.value;
}
}
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 :
Ensuite dans le JS tu rajoutes ca :
Ça devrait le faire ça
EDIT :
la fonction précédente devient ceci :
Et faut que ca donne ca :
echo '<form action="sequence.php" method="post" name="formImg">'; echo '<input id="choix" name="choix" type="hidden" value="void" />'; echo '<input type="button" value="Valider" onclick="valider();" />';
Ensuite dans le JS tu rajoutes ca :
function valider() { if((nbImg >= 2) && (nbImg <= 4)) { document.formImg.submit(); }else { alert("Nombres d'images choisis incorrect"); } }
Ça devrait le faire ça
EDIT :
la fonction précédente devient ceci :
function ajout(nomImg) { var inHide = document.getElementById('choix'); //l'input de type hidden if(nbImg < 4) //pour ne pas sélectionner plus de 4 photos { nbImg++; //incrémentation du nombre de photo choisis if(nbImg == 1) //si c'est la première { inHide.value = nomImg; alert('Votre position '+ nomImg +' a bien été prise en compte !'); // ici on peut ajouter un infobull pour avertir l'utilisateur que sa photo a été prise en compte } else //les suivantes { inHide.value = inHide.value+";"+nomImg; alert('Votre position ' + nomImg +' a bien été prise en compte !'); // ici on peut ajouter un infobull pour avertir l'utilisateur que sa photo a été prise en compte if(nbImg == 4) { //document.location.href="sequence.php?inHide="+inHide.value; valider(); } } } else{ alert('Vous ne pouvez pas séléctionner plus de 4 positions !'); //document.location.href="sequence.php?inHide="+inHide.value; valider(); } }
voila le code que j'ai adapté à l'aide de ta réponse ci dessus :
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
$nomRepertoire = "./images/positions";
if (is_dir($nomRepertoire))
{
$dossier = opendir($nomRepertoire);
while ($Fichier = readdir($dossier))
{
if ($Fichier != "." AND $Fichier != ".." AND (stristr($Fichier,'.gif') OR stristr($Fichier,'.jpg') OR stristr($Fichier,'.png') OR stristr($Fichier,'.bmp')))
{
// Hauteur de toutes les images
$h_vign = "120";
$taille = getimagesize($nomRepertoire."/".$Fichier);
$reduc = floor(($h_vign*100)/($taille[1]));
$l_vign = floor(($taille[0]*$reduc)/60);
/*echo '<a target="_blank" href="', $urlphoto, '/',$Fichier, '">';
echo '<img src="', $urlphoto, '/',$Fichier, '" ';
echo "width='$l_vign' height='$h_vign'>";
echo "</a> ";*/
//echo '<a target="_blank" href="', $urlphoto, '/',$Fichier, '">';
//echo '<img onclick="document.getElementById("inNomFic" ).value=\''. $Fichier .'\';window.open(\''. $urlphoto .'/'. $Fichier .'\');return false;" src="', $urlphoto, '/',$Fichier, '" ';
//echo "width='$l_vign' height='$h_vign' /> ";
//echo "</a> ";
//echo '<img onclick="document.location(\'sequence.php?photo='. $Fichier .'\');" src="', $urlphoto, '/',$Fichier, '" />';
// echo '<a href=clic.php?img='. $Fichier .'><img src="', $urlphoto, '/',$Fichier, '" /></a>';
echo '<img class="imgClick" src="'. $urlphoto .'/'. $Fichier .'" onclick="ajout(\''. $Fichier .'\');" />';
//echo '<input id="choix" name="choix" type="hidden" value="void" />';
}
}
closedir($dossier);
echo '<form action="sequence.php" method="post" name="formImg">';
echo '<input id="choix" name="choix" type="hidden" value="void" />';
echo '<input type="button" value="Valider" onclick="valider();" />';
}
else
{
echo' Le répertoire spécifié n\'existe pas';
}
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
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :