Sélection multiple pour suppression

Eléphanteau du PHP | 12 Messages

20 janv. 2014, 11:56

Bonjour,

Suite à mon sujet précédent :php-debutant/suppression-image-php-t269945.html#p418806, je souhaite améliorer ma page et supprimer plusieurs images en une fois.

J'aimerai pouvoir cocher les images et avoir un menu de suppression qui apparaisse (un peu comme dans la gestion des images Google+).

Pour le moment, je supprime les images 1 à 1, mais lorsque mon dossier en comprend un centaine, je galère un peu.

J'ai intégré des sélections, mais je n'arrive pas à trouver la manip pour les supprimer.
<?php

//Nom du dossier à scanner
$dossier = '.';
//scandir — Liste les fichiers et dossiers dans un dossier
$tableau = scandir($dossier);
$tableau = array_slice($tableau, 2, -6);
//Tri croissant
sort($tableau);
//On boucle
foreach($tableau as $valeur){
    if ($valeur != "." AND $valeur != ".." AND (stristr($valeur,'.gif') OR stristr($valeur,'.jpg') OR stristr($valeur,'.png') OR stristr($valeur,'.bmp')))
        {    
		
echo '<ul><a class="fancybox" rel="gallery1" href="'.$valeur.'" title="'.$valeur.'"><img class="images" src="'.$valeur.'" height=170px></a> <a href="delete_file.php?nom='.$valeur.'">

<form class="croix" method="select" action="delete_file.php">
          <input type="checkbox" name="supprimer" id="delete" /><br />
</form></a></ul>';
		
     }else{
echo '<ul><a class="fancybox" rel="gallery1" href="'.$valeur.'" title="'.$valeur.'"><img class="images" src="../img/txt.jpg" height=50px></a></ul>';

		 }
        } 		
?>
J'ai bien des sélections possible sur toutes les images, mais comment intégrer le lien vers delete_file.php
<form class="croix" method="select" action="delete_file.php">
          <input type="checkbox" name="supprimer" id="delete" /><br />
</form>

Mammouth du PHP | 2278 Messages

20 janv. 2014, 13:53

Il n'existe de méthodes que get ou post:
<form class="croix" method="select" action="delete_file.php">
           <input type="checkbox" name="supprimer" id="delete" /><br />
</form>
Il faudrait stocker les noms et codes des images soit dans un select multiple, soit dans des checkboxes portant toutes le même nom:
<select name = 'images' multiple ="multipl">
<option value ='∕home/popeye/biceps.png'>Popeye</option>
<!-- etc->
</select>
soit dans des checkboxes dans un tableau:
<table>
<tr><input type = "checkbox" name ="supprimer[]"  value ='∕home/popeye/biceps.png' />
</table>
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 12 Messages

20 janv. 2014, 15:18

Merci

En fait, pas tout compris à ce que tu me raconte.
Voilà le résultat :

Image

Je souhaite cocher les images à supprimer en les sélectionnant.
J'ai la méthode pour les faire une à une, mais c'est très long.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

20 janv. 2014, 15:45

salut,

ce que veux dire sirakawa c'est que :
<form class="croix" method="select"

n'est pas valide. Une méthode de formulaire c'est get ou post.

ce que tu veux faire est "assez facile" avec un seul formulaire (dans avant l'affichage de toutes tes images tu commence le formulaire et le ferme lorsqu'elle sont toues affichées).

ensuite avec la notation tableau pour le nom des checkbox et aura un tableau coté php lors de la validation du formulaire.
dans l'exemple de sirakawa
<input type = "checkbox" name ="supprimer[]" value ='∕home/popeye/biceps.png' />

donne un tableau dans $_POST['supprimer'] (pour peu que la méthode du formulaire soit post).

Du coup tu ajoute l'attribut value dans les checkbox qui aura pour valeur l'id de l'élément à supprimer.

Ensuite un simple implode sur $_POST['supprimer'] te permet, avec une requête du style delete from images where id in ( ...), de le faire en une seul fois ;)

pour ce qui est du petit bouton sélectionner tout c'est simple aussi.
en javascript tu parcourt tout les éléments qui s'appel supprimer et tu passe l'état à checkded.
un framework javascript comme jquery, extjs ou autre pourras t'aider à le faire plus facilement.

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 12 Messages

21 janv. 2014, 11:32

Merci pour la réponse détaillée, mais je ne comprends rien.

Je ne comprends pas le php, je ne fais que copier des codes récupérer ci et là et je les adaptes à mes besoins.
Il m'a fallut 2 mois pour réussir cette page.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

21 janv. 2014, 16:30

ben va falloir t'y mettre un peu plus :mrgreen:
le but du forum étant de t'aider à y arriver mais on ne va le faire pour toi.

s'il y a des chose que tu ne comprend pas on peu t'expliquer mais il faut que tun ous indique ce que tu ne comprend pas (tableau php, comment récupérer les valeur d'un formulaire etc etc).

@+
Il en faut peu pour être heureux ......