[Supprimer la sélection]

Discussion dans 'Web, design' créé par SkYlEsS, 9 Février 2006.

Statut de la discussion:
Fermée.
  1. Offline
    SkYlEsS Kawai
    C'est encore moi :D

    Nan râle pas Jereck :roll:

    Ma question est toute simple : ayant un système de messagerie privée sur mon site, je me demandais comme je pouvais bien faire pour qu'on puisse sélectionner plus messages d'un seul clic, donc avec des <input type="checkbox"> ...

    Je ne comprends pas comment récupérer les valeurs des checkbox cochées ... Valeurs qui correspondraient donc aux id des mps à effacer.

    Bref, comme sur GamerZ et tous les forums je suppose :D

    Merci :cool:
    SkYlEsS, 9 Février 2006
    #1
  2. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    le plus simple, c'est que tu fasse le test avec un formulaire qui passe en "GET" et pas en "POST" pour voir exactement comment sont gérée les checkboxes.

    Je me souviens juste que chacune doit avoir une propriété name/value différente de celle des autres (un peu comme un ID, tu vois ;)). perso, sur un de mes sites, j'ai donc :

    Code:
    <input name="<?PHP echo $id; ?>" type="checkbox" value="<?PHP echo $id; ?>">
    et niveau script :

    Code:
    foreach ($_POST as $varr){
    	$posted .= "$varr,";
    }
    
    $posted = substr ($posted,0,-8);
    // Car j'ai une autres option qui passe aussi en $_POST
    //	$_POST['action'] = delete => 'delete,' = 8
    
    mysql_exec("DELETE FROM <table> WHERE id IN ($posted)");
    Jereck, 9 Février 2006
    #2
  3. Offline
    Calvin80 Elite
    Hello

    juste un complèment par rapport à la reponse de Jereck:

    tu peux utiliser un tableau de variable:
    <input type="checkbox" name="valeur[1]">...
    <input type="checkbox" name="valeur[2]">...
    etc..

    tes valeurs seront alors dans le tableau "valeur"
    Calvin80, 10 Février 2006
    #3
  4. Offline
    SkYlEsS Kawai
    Donc :

    Code:
    <input name="'.$tab[0].'" type="checkbox">
    et la destination contient :

    Code:
    <?
    
    $id_joueur = $_COOKIE['id_joueur'];
    
    foreach ($_POST as $varr)
    { 
    	$posted .= "$varr,"; 
    } 
    
    $posted = substr($posted,0,-8);
    
    
    $req = mysql_query("select * from ad_mp WHERE id IN ($posted) AND id_dest = '$id_joueur'");
    
    
    if(mysql_numrows($req) != 0)
    {
    
    	$req = mysql_query("select * from ad_mp WHERE id IN ($posted) ");
    
    
    	while($tab = mysql_fetch_array($req))
    	{
    		if($id_joueur == $tab['id_dest'] || $id_joueur == $tab['id_exp'])
    		{
    
    		 mysql_query("delete from ad_mp WHERE id IN ($posted) ");
    		?>
    		<script language="javascript">
    		window.location.href='mp_inbox.htm';
    		</script>
    		<?
    		}
    		else
    		{
    		 echo '<div class="texte">Opération interdite</div>';
    		}
    	}
    }
    else
    {
     echo '<div class="texte">Vous ne pouvez pas supprimer un message qui ne vous est destiné</div><br>';
     echo '<div class="menu"><a href="mp_inbox.htm">Retour aux messages</a></div>';
    }
    
    ?>

    :arrow: Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /home/simcarri/www/mp_del+.php on line 14

    Vous ne pouvez pas supprimer un message qui ne vous est destiné


    Retour aux messages
    SkYlEsS, 11 Février 2006
    #4
  5. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    'tention que mon " $posted = substr($posted,0,-8 ); " est là car dans mon cas, il y a 8 caractères de trop. la plus simple étant de faire un echo de $posted pour bien voir ce qu'il contient.
    Jereck, 11 Février 2006
    #5
  6. Offline
    SkYlEsS Kawai
    Ben disons que si je fais simplement :

    Code:
    foreach ($_POST as $varr)
    {
       $posted .= "$varr,";
    }
    
    mysql_query("delete from ad_mp WHERE id IN ($posted)");
    Il me supprime qu'un seul des choix sélectionner ! Comment faire pour qu'il refasse en boucle autant de fois ce code que de valeurs différentes choisies ?
    SkYlEsS, 11 Février 2006
    #6
  7. Offline
    zoheir cvm.mangaleet()
    insères ton query dans la boucle
    zoheir, 11 Février 2006
    #7
  8. Offline
    FoX SpeEd Touriste
    simplement comme ca:

    Code:
    foreach ($_POST as $varr)
    {
       mysql_query("delete from ad_mp WHERE id='".$varr."'");
    }
    
    FoX SpeEd, 11 Février 2006
    #8
  9. Offline
    SkYlEsS Kawai
    Merci beaucoup à tous et un gros poutours à Jereck :D

    A la semaine prochaine pour un nouveau problème à résoudre :D
    SkYlEsS, 12 Février 2006
    #9
  10. Offline
    SkYlEsS Kawai
    Autant pour moi, j'avais omis de mettre dans le input le value du mp :roll:
    SkYlEsS, 12 Février 2006
    #10
Statut de la discussion:
Fermée.