PHP Case a cocher
lamzo74
-
lamzo74 -
lamzo74 -
Bonjour,
Je ve rajouter une otre colonne ou serai mi une case a coché dans une page ou s'affiche via une requete sql toute les donnée enregistré par ligne.
Quand je clik sur cette ou ces case, j'ai un bouton "supprimer" en page de page qui supprime donc la ou les ligne dont la case a été cocher.
Au niveau du code j'i arrive pas est ce que quelqu'un aurait une idée au niveau du code mercii!! d'avanceee
Je ve rajouter une otre colonne ou serai mi une case a coché dans une page ou s'affiche via une requete sql toute les donnée enregistré par ligne.
Quand je clik sur cette ou ces case, j'ai un bouton "supprimer" en page de page qui supprime donc la ou les ligne dont la case a été cocher.
Au niveau du code j'i arrive pas est ce que quelqu'un aurait une idée au niveau du code mercii!! d'avanceee
16 réponses
Regarde dans phpmyadmin c'est exactement ce que je recherche :
http://www.php-astux.info/images/articles/mysql-phpmyadmin3.png
il a y des lignes, tout a gauche on retrouve une case on la coche et en bas du tableau ya une croix rouge on clique et sa la supprime c'est ce que je souhaite faire .
http://www.php-astux.info/images/articles/mysql-phpmyadmin3.png
il a y des lignes, tout a gauche on retrouve une case on la coche et en bas du tableau ya une croix rouge on clique et sa la supprime c'est ce que je souhaite faire .
Salut,
Par exemple, tu nommes tes cases à cocher suppr_ID ou ID est l'id de l'élément à supprimer
Et sur ta page de traitement, pour chaque variable que tu reçois en POST, tu regardes si elle se commence par suppr_ si oui, tu récupères l'ID et tu supprimes dans la base
Par exemple, tu nommes tes cases à cocher suppr_ID ou ID est l'id de l'élément à supprimer
Et sur ta page de traitement, pour chaque variable que tu reçois en POST, tu regardes si elle se commence par suppr_ si oui, tu récupères l'ID et tu supprimes dans la base
slt
merci de ta réponse
desolé mais tu va trop vite pour moi je débute en php. ^^
Si tu pourrais m'aidé au niveau du code sa serez cool sa m'arrangerais. merci
merci de ta réponse
desolé mais tu va trop vite pour moi je débute en php. ^^
Si tu pourrais m'aidé au niveau du code sa serez cool sa m'arrangerais. merci
desolé j oublié de presicé dans ma table ma clé primaire est formé de 2 champ: IndexTicket et NumeroTicket.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon, si je comprends bien, tu ne veux pas supprimer tout le ticket ( numTicket=X ) mais seulement une partie ( numTicket=X et indexTicket=Y ) ?
A la création, tu nommes tes cases à cocher :
Côté traitement du formulaire :
<code>
foreach($_POST as $nom => $val) // Pour chaque valeur venant du formulaire
{
if(substr($nom,0,6)=="suppr_") // Si c'est une case à cocher de suppression
{
$cle = substr($nom,6); // On enlève suppr_
$index = substr($cle,0,strpos($cle,"_")); // On récupère l'index
$num = substr($cle,strpos($cle,"_")+1); // On récupère le numéro
mysql_query("DELETE FROM TICKET WHERE numTicket=$num et indexTicket=$index"); // Suppression
}
}
A la création, tu nommes tes cases à cocher :
name=\"suppr_\"".rst["numTicket"]."_".rst["indexTicket"]
Côté traitement du formulaire :
<code>
foreach($_POST as $nom => $val) // Pour chaque valeur venant du formulaire
{
if(substr($nom,0,6)=="suppr_") // Si c'est une case à cocher de suppression
{
$cle = substr($nom,6); // On enlève suppr_
$index = substr($cle,0,strpos($cle,"_")); // On récupère l'index
$num = substr($cle,strpos($cle,"_")+1); // On récupère le numéro
mysql_query("DELETE FROM TICKET WHERE numTicket=$num et indexTicket=$index"); // Suppression
}
}
Si j'ai bien compris :
Tu n'as besoin que de numTicket en fait dans le code car numTicket doit être le numéro du ticket ( un numéro qui est unique pour un ticket ).
indexTicket doit correspondre à un message précis du ticket donc quand on supprime, on supprime tous les messages du ticket
donc ça deviendrait :
Tu n'as besoin que de numTicket en fait dans le code car numTicket doit être le numéro du ticket ( un numéro qui est unique pour un ticket ).
indexTicket doit correspondre à un message précis du ticket donc quand on supprime, on supprime tous les messages du ticket
DELETE FROM TICKET WHERE numTicket=X
donc ça deviendrait :
Pour le nommage : "suppr_".$rst["numTicket"]; foreach($_POST as $nom => $val) // Pour chaque valeur venant du formulaire { if(substr($nom,0,6)=="suppr_") // Si c'est une case à cocher de suppression { $num = substr($cle,6); // On récupère le numéro mysql_query("DELETE FROM TICKET WHERE numTicket=$num"); // Suppression } }
J'abandonne sa marche pas.
c'est quelque chose qui se fait presque partout sur les site mais aparement c'est dur a comprendre bref tanpi merci de ton aide quand meme Mikey_UFC8.
bonne continuation
c'est quelque chose qui se fait presque partout sur les site mais aparement c'est dur a comprendre bref tanpi merci de ton aide quand meme Mikey_UFC8.
bonne continuation
lorsque je coche ma case de ma ligne et j'appuie sur supprimer rien ne se fait voici mon code :
de ma page "tickets.php"
<table border="1"><tr>
<th>Index ticket</th>
<th>Numéro du ticket</th>
<th>Nom du client</th>
<th>Date du ticket</th>
<th>Heure du Ticket</th>
<th>Nom du Recepteur</th>
<th>Interlocuteur client</th>
<th>Sujet du ticket</th>
<th>Affecté à</th>
<th>Editer</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM tb_ticket ORDER BY NumeroTicket ASC');
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les résultats
{
?>
<tr>
<td><?php echo $donnees['IndexTicket']; ?></td>
<td><?php echo $donnees['NumeroTicket']; ?></td>
<td><?php echo $donnees['NomClient']; ?></td>
<td><?php echo $donnees['DateTicket']; ?></td>
<td><?php echo $donnees['HeureTicket']; ?></td>
<td><?php echo $donnees['RecepteurTicket']; ?></td>
<td><?php echo $donnees['InterlocuteurClient']; ?></td>
<td><?php echo $donnees['SujetTicket']; ?></td>
<td><?php echo $donnees['AffectationTicket']; ?></td>
<td><input type='checkbox' name="suppr_\".rst["IndexTicket"]."_".rst["NumeroTicket"]'></td>
</tr>
<?php
foreach($_POST as $nom => $val) // Pour chaque valeur venant du formulaire
{
if(substr($nom,0,6)=="suppr_") // Si c'est une case à cocher de suppression
{
$cle = substr($nom,6); // On enlève suppr_
$IndexTicket = substr($cle,0,strpos($cle,"_")); // On récupère l'index
$NumeroTicket = substr($cle,6); // On récupère le numéro
mysql_query("DELETE FROM tb_ticket WHERE NumeroTicket=$NumeroTicket and IndexTicket=$IndexTicket"); // Suppression
}
}
?>
<?php
} // Fin de la boucle
?>
</table>
<P align=left>
<center><input name="suppr_\" type=submit value="Supprimer"></center><br><br>
<p align="center"><a href="index.php?erreur=logout"><strong>Vous déconnecter</strong></a></p>
de ma page "tickets.php"
<table border="1"><tr>
<th>Index ticket</th>
<th>Numéro du ticket</th>
<th>Nom du client</th>
<th>Date du ticket</th>
<th>Heure du Ticket</th>
<th>Nom du Recepteur</th>
<th>Interlocuteur client</th>
<th>Sujet du ticket</th>
<th>Affecté à</th>
<th>Editer</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM tb_ticket ORDER BY NumeroTicket ASC');
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les résultats
{
?>
<tr>
<td><?php echo $donnees['IndexTicket']; ?></td>
<td><?php echo $donnees['NumeroTicket']; ?></td>
<td><?php echo $donnees['NomClient']; ?></td>
<td><?php echo $donnees['DateTicket']; ?></td>
<td><?php echo $donnees['HeureTicket']; ?></td>
<td><?php echo $donnees['RecepteurTicket']; ?></td>
<td><?php echo $donnees['InterlocuteurClient']; ?></td>
<td><?php echo $donnees['SujetTicket']; ?></td>
<td><?php echo $donnees['AffectationTicket']; ?></td>
<td><input type='checkbox' name="suppr_\".rst["IndexTicket"]."_".rst["NumeroTicket"]'></td>
</tr>
<?php
foreach($_POST as $nom => $val) // Pour chaque valeur venant du formulaire
{
if(substr($nom,0,6)=="suppr_") // Si c'est une case à cocher de suppression
{
$cle = substr($nom,6); // On enlève suppr_
$IndexTicket = substr($cle,0,strpos($cle,"_")); // On récupère l'index
$NumeroTicket = substr($cle,6); // On récupère le numéro
mysql_query("DELETE FROM tb_ticket WHERE NumeroTicket=$NumeroTicket and IndexTicket=$IndexTicket"); // Suppression
}
}
?>
<?php
} // Fin de la boucle
?>
</table>
<P align=left>
<center><input name="suppr_\" type=submit value="Supprimer"></center><br><br>
<p align="center"><a href="index.php?erreur=logout"><strong>Vous déconnecter</strong></a></p>
il y a pa besoin de fomulaire dans cette page car c'est juste un visuel de ce que j'ai dans ma table ticket c'est tout.
Enfette je t'explique : j'ai une page nouveauticket. php qui est un formulaire je rempli ce formulaire je l'envoi sa s'enregistre dans la base de donnée.
Ensuite je clique sur le lien tickets sa m'affiche tous les tickets tous simplement.
Enfette je t'explique : j'ai une page nouveauticket. php qui est un formulaire je rempli ce formulaire je l'envoi sa s'enregistre dans la base de donnée.
Ensuite je clique sur le lien tickets sa m'affiche tous les tickets tous simplement.
je sais pas justement c'est que je cherche a faire depuis le debut d'aprem midi alors je vais les mettre dans le formulaire voir ce que sa donne.
Non, c'est un autre formulaire là.
Il faut que la visualisation des tickets soit dans un formulaire :
En gros il faut que tu rajoutes des balises form dans tickets.php et tu mets ça :
Il faut que la visualisation des tickets soit dans un formulaire :
En gros il faut que tu rajoutes des balises form dans tickets.php et tu mets ça :
foreach($_POST as $nom => $val) // Pour chaque valeur venant du formulaire { if(substr($nom,0,6)=="suppr_") // Si c'est une case à cocher de suppression { $cle = substr($nom,6); // On enlève suppr_ $IndexTicket = substr($cle,0,strpos($cle,"_")); // On récupère l'index $NumeroTicket = substr($cle,6); // On récupère le numéro mysql_query("DELETE FROM tb_ticket WHERE NumeroTicket=$NumeroTicket and IndexTicket=$IndexTicket"); // Suppression } }en début de fichier dans un
if($_POST["nom_du_bouton_supprimer]){}
J'avais bien compris ce que tu voulais faire, je ne suis pas débile...
Essaye ça.
<?php if($_POST["suppression"]) { foreach($_POST as $nom => $val) // Pour chaque valeur venant du formulaire { if(substr($nom,0,6)=="suppr_") // Si c'est une case à cocher de suppression { $cle = substr($nom,6); // On enlève suppr_ $IndexTicket = substr($cle,0,strpos($cle,"_")); // On récupère l'index $NumeroTicket = substr($cle,6); // On récupère le numéro mysql_query("DELETE FROM tb_ticket WHERE NumeroTicket=$NumeroTicket and IndexTicket=$IndexTicket"); // Suppression } } } ?> <form method="POST" action="tickets.php"> <table border="1"><tr> <th>Index ticket</th> <th>Numéro du ticket</th> <th>Nom du client</th> <th>Date du ticket</th> <th>Heure du Ticket</th> <th>Nom du Recepteur</th> <th>Interlocuteur client</th> <th>Sujet du ticket</th> <th>Affecté à</th> <th>Editer</th> </tr> <?php $retour = mysql_query('SELECT * FROM tb_ticket ORDER BY NumeroTicket ASC'); while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les résultats { ?> <tr> <td><?php echo $donnees['IndexTicket']; ?></td> <td><?php echo $donnees['NumeroTicket']; ?></td> <td><?php echo $donnees['NomClient']; ?></td> <td><?php echo $donnees['DateTicket']; ?></td> <td><?php echo $donnees['HeureTicket']; ?></td> <td><?php echo $donnees['RecepteurTicket']; ?></td> <td><?php echo $donnees['InterlocuteurClient']; ?></td> <td><?php echo $donnees['SujetTicket']; ?></td> <td><?php echo $donnees['AffectationTicket']; ?></td> <td><input type='checkbox' name="suppr_\".$donnees["IndexTicket"]."_".$donnees["NumeroTicket"]'></td> </tr> <?php } // Fin de la boucle ?> </table> <P align=left> <center><input name="suppression" type=submit value="Supprimer"></center><br><br> <p align="center"><a href="index.php?erreur=logout"><strong>Vous déconnecter</strong></a></p> </form>
Essaye ça.
C'est dans cette ligne :
<form method="POST" action="tickets.php">qu'il faut que tu mettes la bonne page (celle de la page ou tu te trouves).
je pensse que sa va vient lorsque qu'on clique sur supprimer il faut peut etre rajouter quelque chose au niveau de ce bouton pour que lorsqu'on clique sur supprimer sa va chercher le code qui permet de supprimer ? nan ?
Qu'est ce que t'en pensse ?
Ou alors mettre le code sur autre page qu'on appelle supprimer.php et on met le code dedans ou sur le form on renvoie ce code quand on clique sur supprimer ?
J'attends ton avis! ^^
Qu'est ce que t'en pensse ?
Ou alors mettre le code sur autre page qu'on appelle supprimer.php et on met le code dedans ou sur le form on renvoie ce code quand on clique sur supprimer ?
J'attends ton avis! ^^
Bon, teste les valeurs de retour avec des echo :
un
un
avant
un
echo "$nom $val<br />";juste après le foreach
un
echo "DELETE FROM tb_ticket WHERE NumeroTicket=$NumeroTicket and IndexTicket=$IndexTicket<br />"
avant
mysql_query("DELETE FROM tb_ticket WHERE NumeroTicket=$NumeroTicket and IndexTicket=$IndexTicket");
re je voudrais savoir a quoi sert " $cle" !
Je voulais aussi te demander si on metté sa sur une autre page sa serez pa mieux ?
Je voulais aussi te demander si on metté sa sur une autre page sa serez pa mieux ?
if($_POST["suppression"]) { foreach($_POST as $nom => $val) // Pour chaque valeur venant du formulaire { echo "$nom $val<br />"; if(substr($nom,0,6)=="suppr_") // Si c'est une case à cocher de suppression { $cle = substr($nom,6); // On enlève suppr_ $IndexTicket = substr($cle,0,strpos($cle,"_")); // On récupère l'index $NumeroTicket = substr($cle,6); // On récupère le numéro echo "DELETE FROM tb_ticket WHERE NumeroTicket=$NumeroTicket and IndexTicket=$IndexTicket<br />"; mysql_query("DELETE FROM tb_ticket WHERE NumeroTicket=$NumeroTicket and IndexTicket=$IndexTicket"); // Suppression } } }
Si il n'y avait pas d'erreur avant, le echo ne peut pas faire d'erreur à moins biensur de ne pas mettre de ;
dans la source mes checkbox je retrouve sa :
<td><input type='checkbox' name="suppr_\".<?php$donnees["IndexTicket"]."_".$donnees["NumeroTicket"]?></td>
</tr>
p.s: je sais si je te l'ai deja di mais pour créer la case a cocher j'ai rajouter un champs dans la table ticket que j'ai appelé "EditerTicket" donc ce qui donne que au dessus de la case a coche on retrouve editer un ticket.
il faudrait peut s'en servir nan ? pour dir "si case a cocher et que click supprimer" alors supprimer la ligne sinon rien faire" quelque chose comme ca.
J'ai vu aussi sur un forum que la personne avait di de faire que quand la case est coché s'est egal a 1 sinon c'est 0 quand elle n'est pas cocher.
Donc ce qui donnerais : si case a cocher=1 et que click supprimer" alors supprimer la ligne(via la requete delete) sinon rien faire
<td><input type='checkbox' name="suppr_\".<?php$donnees["IndexTicket"]."_".$donnees["NumeroTicket"]?></td>
</tr>
p.s: je sais si je te l'ai deja di mais pour créer la case a cocher j'ai rajouter un champs dans la table ticket que j'ai appelé "EditerTicket" donc ce qui donne que au dessus de la case a coche on retrouve editer un ticket.
il faudrait peut s'en servir nan ? pour dir "si case a cocher et que click supprimer" alors supprimer la ligne sinon rien faire" quelque chose comme ca.
J'ai vu aussi sur un forum que la personne avait di de faire que quand la case est coché s'est egal a 1 sinon c'est 0 quand elle n'est pas cocher.
Donc ce qui donnerais : si case a cocher=1 et que click supprimer" alors supprimer la ligne(via la requete delete) sinon rien faire
La colonne que tu as rajouter dans la table ne sert à rien.
Il faut que quand tu regardes la sources tu es :
Sinon si ça ne marche pas remplace par :
?>
<td><input type='checkbox' name="suppr_<?php echo $donnees["IndexTicket"]."_".$donnees["NumeroTicket"]?>"</td>
Il faut que quand tu regardes la sources tu es :
<input type='checkbox' name="suppr_A_32</td>
Sinon si ça ne marche pas remplace par :
<?php echo "<td><input type='checkbox' name='suppr_".$donnees["IndexTicket"]."_".$donnees["NumeroTicket"]."'</td>";
?>
okok merci!
On y est presque lol parce que maintenan sa m'affiche sa :
suppr_A_1 on
DELETE FROM tb_ticket WHERE NumeroTicket= and IndexTicket=A
suppression Supprimer
le suppr A_1 correspond bien a l'index et au numeroticket donc il sait quelle ligne à été cocher!
cependant la ligne ne supprime pas il manque que sa la suppression .
On y est presque lol parce que maintenan sa m'affiche sa :
suppr_A_1 on
DELETE FROM tb_ticket WHERE NumeroTicket= and IndexTicket=A
suppression Supprimer
le suppr A_1 correspond bien a l'index et au numeroticket donc il sait quelle ligne à été cocher!
cependant la ligne ne supprime pas il manque que sa la suppression .