Suppression multiple avec checkbox

Ce topic a été résolu
Blast0Kd

Blast0Kd Le 10 juillet 2016 à 16:24 (Édité le 25 janvier 2019 à 17:51)

Salut à tous, j'ai fait un système de message privé comme primfx, et maintenant j'aimerai qu'a coté, il y est une checkbox et que lorsque l'on clique sur certaine, cela supprime les messages sélectionnés grâce à ces dernière.
Voila j'espère avoir été asser clair.
Langage de programmation utilisé pour ceci : PHP, HTML, CSS
Blast0Kd

Blast0Kd Le 10 juillet 2016 à 16:40

Voici le code pour être plus précis :

<table>
 <?php
   if($msg_nbr == 0) { echo "Vous n'avez aucun message..."; }
   while($m = $msg->fetch()) {
      $p_exp = $bdd->prepare('SELECT pseudo FROM membres WHERE id = ?');
      $p_exp->execute(array($m['id_expediteur']));
      $p_exp = $p_exp->fetch();
      $p_exp = $p_exp['pseudo'];
   ?>
   <div align="left">
<tr>
<td>
<input align="left" type="checkbox" name="choix[]" id="choix"  />
<label align="left"  for="choix"></label>
</td>
<td>
   <a href="message?<?= url_custom_encode($m['objet']); ?>&id=<?= $m['id']; ?>"<?php if($m['lu'] == 1) { ?><span style="color:grey; opacity: 0.8;"><?php } ?><b><?= $p_exp ?></b> vous a envoyé un message le <?= $m['jour']; ?> à <?= $m['heure']; ?><br />
      <b>Objet:</b> <?= $m['objet'] ?><?php if($m['lu'] == 1) { ?></span><?php } ?></a><br />
</td>
</tr>
</div>
   <?php } ?>
</table>
Et voici le fichier après l'appui d'un bouton :

<?php
session_start();
include('../res/config.php');
if(isset($_SESSION['id']) AND !empty($_SESSION['id'])) {
            $cx = htmlspecialchars($_POST['choix[]']);
     
            $del = $bdd->prepare('DELETE FROM messages WHERE id = ? AND id_destinataire = ?');
            $del->execute(array($cx, $_SESSION['id']));
            header('Location: reception');
      
   
} 
?>
Blast0Kd

Blast0Kd Le 10 juillet 2016 à 17:05

up please
Balatharas

Balatharas Le 10 juillet 2016 à 18:28

Je pense pouvoir t'aider, mais par pitié change ton avatar, mes yeux saignent..
Blast0Kd

Blast0Kd Le 10 juillet 2016 à 18:32

ok @Beignet je vais le changer mais help please !!
Blast0Kd

Blast0Kd Le 10 juillet 2016 à 18:37

up  @Beignet ?
Balatharas

Balatharas Le 10 juillet 2016 à 18:40 (Édité le 10 juillet 2016 à 18:43)

Bon avant, sois patient je ne vais pas t'aider en 3 secondes. Un up toutes les 24h si le topic est inactif.
EDIT: Désolé mais je n'y arrive pas vraiment, il va falloir attendre.
Blast0Kd

Blast0Kd Le 10 juillet 2016 à 18:42

je peux utiliser tous langage mais le php reste mon favoris pour ce genre de chose
Balatharas

Balatharas Le 10 juillet 2016 à 18:44

En même temps je pense pas que c'est avec du jQuery que tu va faire ça xD
Blast0Kd

Blast0Kd Le 10 juillet 2016 à 18:45

mdr mais avec javascript on pourrait faire les vérifications mais pas les requêtes et moi c'est les requêtes et les nom des checkbox que je ne trouve pas
Blast0Kd

Blast0Kd Le 10 juillet 2016 à 20:15

t'as trouvé une piste @Beignet ?
Blast0Kd

Blast0Kd Le 10 juillet 2016 à 23:16

Dwardower

Dwardower Le 11 juillet 2016 à 09:33

stop les up merci :/
laisse moi une demi heure et j'essai quelque chose
Dwardower

Dwardower Le 11 juillet 2016 à 10:07

Donc, tes inputs devront ressembler à ça
<input type="checkbox" name="m[]" value="1" />
Ensuite le code php est le suivant :
$result = $_GET['m'];
          foreach($result as $id)
          {
         $del = $bdd->prepare('DELETE FROM messages WHERE id = ? AND id_destinataire = ?');
         $del->execute(array($id, $_SESSION['id']));
          }
header('Location: reception');
J'espère avoir donné la solution,

Cordialement Thomas
Blast0Kd

Blast0Kd Le 11 juillet 2016 à 11:42

OK je vais essayer ça merci
Blast0Kd

Blast0Kd Le 11 juillet 2016 à 12:00

ça marche toujours pas :\
Va voir sur mon site pour que tu vois comment j'ai fait : www.skilldevice.fr
tu t'inscrit et tu va dans la section message.
@Dwardower
Blast0Kd

Blast0Kd Le 11 juillet 2016 à 12:05

Mon fichier reception.php :
         <div class="item featured text-center">
                                  <h3 class="title" align="left"><a href="#" target="_blank">Boîte de réception</a></h3><br />
                                
                                <hr />
                               
<table>
 <?php
   if($msg_nbr == 0) { echo "Vous n'avez aucun message..."; }
   while($m = $msg->fetch()) {
      $p_exp = $bdd->prepare('SELECT pseudo FROM membres WHERE id = ?');
      $p_exp->execute(array($m['id_expediteur']));
      $p_exp = $p_exp->fetch();
      $p_exp = $p_exp['pseudo'];
   ?>
   <div align="left">
<tr>
<td>
<form method="GET" action="">
<input align="left" class="wskCheckbox" type="checkbox" name="m[]" value="1" id="choix" />
<label align="left" class="wskLabel" for="choix"></label>
</td>
<td>
   <a href="message?<?= url_custom_encode($m['objet']); ?>&id=<?= $m['id']; ?>"<?php if($m['lu'] == 1) { ?><span style="color:grey; opacity: 0.8;"><?php } ?><b><?= $p_exp ?></b> vous a envoyé un message le <?= $m['jour']; ?> à <?= $m['heure']; ?><br />
      <b>Objet:</b> <?= $m['objet'] ?><?php if($m['lu'] == 1) { ?></span><?php } ?></a><br />
</td>
</tr>
</div>
   <?php } ?>
</table><br />
<?php if($msg_nbr != 0) { ?><a href="supprimer_more.php"><input type="submit" class="btn btn-cta-grey pull-right" name="bouton_sup" value="Supprimer la sélection" </input></a><br /><br /><?php } else { } ?>
</form>
                   </div><!--//item-->

Mon fichier supprimer_more.php:
<?php
session_start();
include('../res/config.php');
$result = $_GET['m'];
          foreach($result as $id)
          {
         $del = $bdd->prepare('DELETE FROM messages WHERE id = ? AND id_destinataire = ?');
         $del->execute(array($id, $_SESSION['id']));
          }
header('Location: reception');
?>
Blast0Kd

Blast0Kd Le 11 juillet 2016 à 12:06

dans l'url ça me met ça : 
reception?bouton_sup=Supprimer+la+sélection
Blast0Kd

Blast0Kd Le 11 juillet 2016 à 12:10

les erreurs de ton code dans l'execuion c'et ça : 
Notice: Undefined index: m in S:\EasyPHP-DevServer-14.1VC9\data\localweb\site_actus\users\send\supprimer_more.php on line 6

Warning: Invalid argument supplied for foreach() in S:\EasyPHP-DevServer-14.1VC9\data\localweb\site_actus\users\send\supprimer_more.php on line 7
Dwardower

Dwardower Le 11 juillet 2016 à 12:10

<a href="supprimer_more.php"><input type="submit" class="btn btn-cta-grey pull-right" name="bouton_sup" value="Supprimer la sélection" </input></a><br /><br />
ça veut rien dire pour moi O_o
<input type="submit" class="btn btn-cta-grey pull-right" name="bouton_sup" value="Supprimer la sélection" </input>
change en ça
<input type="submit" class="btn btn-cta-grey pull-right" name="bouton_sup" value="Supprimer la sélection" />
et ensuite si il n'y a pas d'autre valeurs définies c'est que les checkboxs ne sont pas cochées ^^'
Dwardower

Dwardower Le 11 juillet 2016 à 12:12

ton code est très spécial ^^'
Ajoute moi skype : dwardower
je vais essayer de t'aider
Blast0Kd

Blast0Kd Le 11 juillet 2016 à 12:13

Le problème avec ton code c'est que j'ai toujours ces deux erreurs :
 

Notice: Undefined index: m in S:\EasyPHP-DevServer-14.1VC9\data\localweb\site_actus\users\send\supprimer_more.php on line 6

Warning: Invalid argument supplied for foreach() in S:\EasyPHP-DevServer-14.1VC9\data\localweb\site_actus\users\send\supprimer_more.php on line 7
pour ce code ci :

<?php
session_start();
include('../res/config.php');
$result = $_GET['m'];
          foreach($result as $id)
          {
         $del = $bdd->prepare('DELETE FROM messages WHERE id = ? AND id_destinataire = ?');
         $del->execute(array($id, $_SESSION['id']));
          }
// header('Location: reception');
?>
Dwardower

Dwardower Le 11 juillet 2016 à 12:30

C'est bon, le sujet est résolu 😋
Balatharas

Balatharas Le 11 juillet 2016 à 12:32

Bon.

Un up toutes les 24h si le topic est inactif. 
+

Désolé mais je n'y arrive pas vraiment, il va falloir attendre.
Ensuite si tu pouvais arrêter de spamer ton topic en faisant 5 posts d’affilée..
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte