Voici encore un soucis
J'ai dans mon système de messagerie privée et lors de l'affichage des messages, des checkbox qui permettent d’effacer, mettre en lu ou en non lu tout les messages sélectionnés. (Images à l'appuie)

Pour ce qui est de " lu, non lu " il n'y a aucun soucis.
Mais pour ce qui est de effacer, là je me retrouve confronté à un comportement bizarre.
En effet, lors de la sélection des messages, et de l'envoie du formulaire vers l'option effacer, on retrouve bien nos messages sélectionnés.
Mais on les perds lors de la confirmation d’effacement.
(Voici une série d'image pour vous montré le problème)
Je sélectionne les messages que je souhaite effacer, et je met le sélecteur d'option sur Supprimer les messages

J'envoie, et vérifie dans la source qu'on récupère bien les messages sélectionnés, et au passage on demande confirmation pour effacer les messages.
J'ai créer un formulaire à l'instar de phpbb, afin de récupérer les id des messages précédemment sélectionnés.

Je clique sur oui, ça fait son travail, mais là surprise il n'y a qu'un seul message effacé au lieu des 2 souhaités.

En revanche, on supprime bien tout les messages sélectionnés si on les coche tous, et de même si on en sélectionne que un seul (mais aussi bizarre qu'il soit, que celui du haut fonctionne, si je sélectionne celui du bas de la liste, ou au milieu, ça ne fonctionneras pas).
Voici mes scripts, maintenant que vous comprenez (j’espère) mieux mon problème
La page d'affichage des messages (seulement la partie nous intéressant)
<?php
.........
$query=$cnx->prepare('SELECT
mp_read, mp_id, users_id_sender, mp_title, mp_date, users_id_receiver, mp_post, response_mp_id
FROM t_mp
LEFT JOIN t_users ON t_mp.users_id_sender = t_users.users_id
WHERE users_id_receiver = :usersid ORDER BY mp_id DESC');
$query->bindValue(':usersid',USERS_ID,PDO::PARAM_INT);
$query->execute();
if ($query->rowCount()>0)
{
//On boucle et on remplit le tableau
$paire = true;
while ($data = $query->fetch())
{
// if (empty($data['response_mp_id'])) {$mp_title=$data['mp_title'];}
$mp_title=(isset($data['response_mp_id']))?'Re: '.$data['mp_title']:$data['mp_title'];
$users_id = $data['users_id_sender'];
$auteur = auteur($users_id);
$couleur=($paire)?'listeforum':'listeforump';
echo'<tr class="'.$couleur.'">';
//Mp jamais lu, on affiche l'icone en question
if($data['mp_read'] == 0)
{
echo'<td class="infomessagemp">
<img src="'.SITE_ADRESSE.'images/forum/topic_nonlu.png" alt="Non lu" />
</td>';
}
else //sinon une autre icone
{
echo'<td class="infomessagemp">
<img src="'.SITE_ADRESSE.'images/forum/topic_lu.png" alt="Déja lu" />
</td>';
}
echo'<td class="infostitremp"><strong>
<a href="'.SITE_ADRESSE.'message?action=consulter&mpid='.$data['mp_id'].'">
'.stripslashes(htmlspecialchars($mp_title)).'</a></strong>
</td>
<td class="auteurmessagesmp">
<a style="color:#'.$auteur['group_color'].';font-weight:bold;" href="'.SITE_ADRESSE.'voirprofil?action=consulter&m='.$auteur['users_id'].'"> '.$auteur['users_name'].'</a>
</td>
<td class="datemessagemp">
'.changedateusfr($data['mp_date']).'
</td>
<td class="actionmessagemp">
<div class="profile-icons">
<ul class="profile-icons">
<input type="checkbox" value="'.$data['mp_id'].'" name="msg_id[]"/>
</ul>
</div>
</td>
</tr>';
$paire = !$paire;
} //Fin de la boucle
$query->CloseCursor();
?>
<tr class="optionforum">
<td class="optionmessage" colspan="6">
<select name="select_option">
<option value="lu">Marquer comme lu</option>
<option value="non-lu">Marquer comme non lu</option>
<option value="delet">Supprimer la sélection</option>
</select>
<input type="submit" value="Aller" name="submit"/>
<div><a onclick="marklist('viewfolder', 'msg_id', true); return false;" href="#">Tout cocher</a> • <a onclick="marklist('viewfolder', 'msg_id', false); return false;" href="#">Tout décocher</a></div>
</td>
</tr>
<?php
} //Fin du if
........
?>
La page de confirmation, pour ne pas effacer bêtement les messages.
<?php
.........
$select_option=$_POST['select_option'];
$msg_id=$_POST['msg_id'];
.........
if ($select_option == 'delet') {
alerte('Êtes-vous sûr de vouloir supprimer ce message ?');
echo '<form method="post" action="'.SITE_ADRESSE.'message?action=supprimer">';
foreach($msg_id as $check)
{
echo '<input type="hidden" value="'.$check.'" name="msg_id['.$check.']"/>';
}
echo '<input type="submit" class="button2" value="Oui" name="confirm"/>
<input type="submit" class="button2" value="Non" name="cancel"/>
</form>';
}
?>
Et pour finir, la page de suppression des messages.<?php
if (isset($_POST['cancel']) AND $_POST['cancel']=="Non")
{
echo '<script type="text/javascript">
<!--
setTimeout(function()
{
window.location.href = "'.SITE_ADRESSE.'message";
},100);
// -->
</script>';
}
if (isset($_POST['confirm']) AND $_POST['confirm']=="Oui")
{
$msg_id=$_POST['msg_id'];
foreach($msg_id as $check)
{
$query=$cnx->prepare('DELETE FROM t_mp WHERE mp_id = :id');
$query->bindValue(':id',$check,PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
}
echo '<script type="text/javascript">
<!--
setTimeout(function()
{
window.location.href = "'.SITE_ADRESSE.'message";
},100);
// -->
</script>';
}
?>
Si vous savez de quoi il s'agit, ou que vous avez une vague idée, SVP, aidez moi.Merci de votre aide
Cordialement