Page 1 sur 1

Bouton supression image mysql php

Posté : 13 juin 2018, 16:53
par azizss
Bonjour tous le monde,

J’essaie de supprimer des images que je charge de ma bdd pdo.
mon problème est que quant je veux supprimer une de mes images, ça me supprime toujours la 1er de la liste.
Comment faire pour récupérer l'id de la bonne image sélectionner ?
<div class="panel-body">
	<div class="form-group">
		<div class="row">
		<?php 
		$id_user = $_SESSION['id'];
		
		$reponse13 = $bdd->query("SELECT * FROM `image` WHERE `user_id` = $id_user AND actif = 1 AND actif_droit = 1");
		while ($donnees13 = $reponse13->fetch())
		{
		$path = $donnees13['path'];
		?><?php
		if ($path != '') {
		?>
	<div class="col-lg-3 col-sm-6">
		<div class="thumbnail">
		<div class="thumb">
			<img src="<?php if ($path != '') {
			echo "files_photo/$id_user/image/$path";
			}else {echo 'assets/images/placeholder.jpg';
			} ?>" alt="">
			<div class="caption-overflow">
				<form id="tes" method="POST" action="./production/img_prive/del_img_priver.php"> 
					<span>
						<input type="hidden" name="id_imageperso" value="<?php echo $donnees13['id_imageperso'] ?>"/>
							<a href='#' onclick='document.getElementById("tes").submit()' class="btn border-white text-white btn-flat btn-icon btn-rounded">
								<i class="icon-trash-alt"></i>
							</a>
							<a href="<?php if ($path != '') {echo "files_photo/$id_user/image/$path";
								}else {
								echo 'assets/images/placeholder.jpg';
								} ?>" data-popup="lightbox" class="btn border-white text-white btn-flat btn-icon btn-rounded">
								<i class="icon-plus3"></i>
							</a>
					</span>
				</form>
			</div>
		</div>
		<div class="caption">
		<h6 class="text-semibold no-margin-top"><a href="#" class="text-default"><?php echo $donnees13['titre']; ?></a></h6><br />
		<h6 class="text-semibold no-margin-top"><a href="#" class="text-default"><?php echo $donnees13['id_imageperso']; ?></a></h6>
</div>
		<span>
			<a  href="" data-toggle="modal" data-target="#myModal2134" data-dismiss="modal" class="btn border-black text-black btn-flat btn-icon btn-rounded"><i class="icon-pencil7"></i></a>		
		</span>
	</div>
</div>
<?php 
}else {
}
?>

Re: Bouton supression image mysql php

Posté : 17 juin 2018, 20:45
par moogli
Salut,

je te conseil une fonction JS simple qui va faire une requête serveur en fournissant l'ID de l'image à supprimer.
Coté serveur un simple delete from image where id = xxx

La signature de la fonction JS

Code : Tout sélectionner

function delateImage(imageID){ // appel "ajax" vers le fichier php de suppression }
le lien html <a href="javascript:deleteImage(<?= $donnee12['imageID'] ?>);">delete</a>


@+

Re: Bouton supression image mysql php

Posté : 18 juin 2018, 17:33
par Ryle
Salutations !

Ton problème vient du fait que dans la boucle qui affiches tes enregistrements, tu inclus un formulaire qui a toujours le même ID.
<form id="tes" method="POST" action="./production/img_prive/del_img_priver.php"> 
Si tu regardes le code source de la page généré, tu verras qu'il y a donc autant de formulaire dont l'id est "tes" que d'élément affichés (ce qui en passant n'est pas valide d'un point de vue HTML, un id devant être unique dans une page).

Ensuite, dans chacun de tes liens, tu demandes à soumettre le formulaire dont l'id est "tes". Le navigateur étant au fait des bonnes pratiques HTML, va donc soumettre le premier formulaire qu'il trouve avec cet id, puisqu'il sait très bien qu'il ne doit pas / peut pas y en avoir d'autre ... et voilà pourquoi c'est toujours la première image qui est supprimée. Affaire résolue mon cher Wats... Azizss ;)

Tu peux donc corriger soit en renommant l'id à chaque ligne (ainsi que l'appel), soit, et ça sera plus propre et plus facile à lire, suivre les recommandation de Moogli, virer les formulaires et garder un lien qui appel une seule et même fonction javascript en lui passant l'id à supprimer :)