[Résolu] Checkbox dans une boîte de réception - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [Résolu] Checkbox dans une boîte de réception (/showthread.php?tid=2584) Pages :
1
2
|
[Résolu] Checkbox dans une boîte de réception - jldbaro - 21-05-2008 J'ai crée une boite de réception de messages dans mon jeu. Afin de permettre au joueur de supprimer plusieurs messages consécutivement, j'ai insérer un checkbox à coté de chaque message. Si le messsage porte l'id: 1398 mon checkbox sera: check1398 J'autorise un max de 100 messages. Mon problème est le suivant: Comment transmettre à la page suppr.php les checkbox activé? J'avais pensé à faire une requete pour connaitre tous les messages du joueur et vérifier un par un dans une boucle si il est activé. Mais cela va user beaucoup du CPU. Quelqu'un aurait une autre idée? Merci, RE: boite de réception - checkbox - Kassak - 21-05-2008 Tu affiches la totalité des messages dans une boucle non? Moi dans mon cas, j'incrémente a chaque fois une variable $i par exemple, et je génère à chaque fois une checkbox qui a comme id $i. Je récupère ensuite tous les id séléctionné, et je supprime, toujours dans une boucle RE: boite de réception - checkbox - Sephi-Chan - 21-05-2008 Tu récupères ton formulaire POST, tu boucles sur le résultat des checkbox et tu construis une chaîne qui ressemblera à 25, 27, 41, 42, 43 et que tu n'auras plus qu'à utiliser dans la clause WHERE … IN de ta requête SQL. Par exemple : Code PHP :
Et voilà ! Sephi-Chan RE: boite de réception - checkbox - phenix - 21-05-2008 Question au niveau des performances: Est il plus rapide de faire une sérier de delete dans un boucle style Code PHP :
Ou bien crée une grande série de OR id=[...] suivit d'une seul requete style Code PHP :
Je sais c'est con comme idée :p PS: je sais que le code PHP est faux, c'est juste pour représenté les idée [edit suite au message de sephi]: la méthode de sephi est elle plus rapide que les deux autre :p RE: boite de réception - checkbox - Cartman34 - 21-05-2008 Le plus simple est de faire un tableau que tu envoies par méthode POST. J'en ai déjà parlé 2fois sur ce forum et je vois que personne ne suit mes idées :'( (que je partage en fait...) Coté HTML: <input type="{Camarcheavectouslestypes}" name="del[{id}]" A la place de {id} tu cases l'id du message. Coté PHP: Foreach pour lire la liste des messages contenu dans $_POST['del']. On vérifie que le message est coché. On vérifie que le message appartient bien à l'utilisateur(on sait jamais y'a toujours des petits malins...) Je connais pas plus simple et efficace... RE: boite de réception - checkbox - phenix - 21-05-2008 Ouarf c'est aussi simple ??? Y pas de revers de faille ou de bug dans ce truc ?? RE: boite de réception - checkbox - Sephi-Chan - 21-05-2008 Il semble que j'ai fais trop court sur les résultats des checkbox. Code : <form action="index.php?p=deleteMessages" method="post"> Sur la page de réception, voilà ce qu'on reçoit en affichant $_POST en admettant que j'ai coché les 2 dernières cases : Code PHP :
Toutefois, cela ne me dispense pas de créer ma chaîne qui ira dans le IN de ma requête, ce que je fais grâce au script qui suit. Code PHP :
Sephi-Chan RE: boite de réception - checkbox - Cartman34 - 21-05-2008 A ta place, j'aurai laissé les valeurs des checkbox sans leur en attribuer d'autre... Genre... Code PHP :
Y'a plus simple, mais j'ai fais pour que tout le monde comprenne et pas trop changer de ce que Sephi a fait. Perso, j'ai une fonction gérant la concaténation des virgules et autres... RE: boite de réception - checkbox - Sephi-Chan - 21-05-2008 IGstaff a écrit :A ta place, j'aurai laissé les valeurs des checkbox sans leur en attribuer d'autre... Seules les cases cochées sont transmises dans POST, donc la valeur de la checkbox importe peu : c'est son nom qui compte. C'est ce que j'ai essayé de montrer dans ma boucle (en n'utilisant pas la forme $key => $value). La condition que tu as ajoutée est donc toujours vraie. Par contre je reconnais que ta condition sur le $i est plus simple que la mienne. Sephi-Chan RE: boite de réception - checkbox - Psykose - 21-05-2008 ou tu recupères tout par javascript ce qui consomme le CPU du client et non pas celui du serveur ... |