IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

utilisation d'un checkbox pour supprimé modifier ou autre action


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 27
    Points : 18
    Points
    18
    Par défaut utilisation d'un checkbox pour supprimé modifier ou autre action
    Bonjour à tous et toutes,

    Enfaite voila j'ai créé une recherche par nom et quand il trouve les nom il les affiche dans un tableau dont voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    <?php
    	if (isset($_GET['supprimer_client'])) // Si on demande de supprimer un client
    	{
        // Alors on supprime le client correspondant
        // On protège la variable "id_client" pour éviter une faille SQL
        $_GET['supprimer_client'] = addslashes($_GET['supprimer_client']);
        mysql_query('DELETE FROM client WHERE idclient=\'' . $_GET['supprimer_client'] . '\'');
     
     
    }
     
    ?>
     
    		<table>
    		<tr bgcolor=#c8c9e8>
    			<th>Modifier</th>
    			<th>Supprimer</th>
    			<th>Num_client</th>
    			<th>Nom</th>
    			<th>Prenom</th>
    			<th>Adresse</th>
    			<th>CP</th>
    			<th>ville</th>
    			<th>Pays</th>
    			<th>Tel fixe</th>
    			<th>GSM</th>
    			<th>fax</th>
    			<th>E-mail</th>
    		</tr>
    		<?php
     
    			$x=0;
    			if (isset($_POST['nom'])){
     
    			$retour = mysql_query('SELECT * FROM client WHERE nom ="'.$_POST['nom'].'"') or die(mysql_error());
     
    			while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les clients
    			{
     
     
    			if (($x-(2*floor($x/2)))==0)
    			{
    			echo "<tr bgcolor=\"#e5e5e5\">";
    			}
    			else
    			{
    			echo "<tr bgcolor=\"#d5d5d5\">";
    			}
    				?>
     
    					<td class="imgtab2"> <?php echo '<a href="mod_clients.php?idclient=' . $donnees['idclient'] . '">';?> <img class="imgtab" src="../image/modifier.png"/></a></td>
    					<td class="imgtab2"> <?php echo '<a href="recherche.php?supprimer_client=' . $donnees['idclient'] . '"';?> onclick="return confirm('Etes-vous sûr de vouloir supprimer ce client? <?php echo stripslashes ($donnees['nom']) ?>&nbsp;<?php echo stripslashes ($donnees['prenom'])?>?');" ><img class="imgtab" src="../image/delete.png"/></a></td>
    					<td><?php echo stripslashes ($donnees['idclient'])?></td>
    					<td><?php echo stripslashes ($donnees['nom'])?></td>
    					<td><?php echo stripslashes ($donnees['prenom'])?></td>
    					<td><?php echo stripslashes ($donnees['adresse'])?></td>
    					<td><?php echo stripslashes ($donnees['cp'])?></td>
    					<td><?php echo stripslashes ($donnees['ville'])?></td>
    					<td><?php echo stripslashes ($donnees['pays'])?></td>
    					<td><?php echo stripslashes ($donnees['telfix'])?></td>
    					<td><?php echo stripslashes ($donnees['telgsm'])?></td>
    					<td><?php echo stripslashes ($donnees['fax'])?></td>
    					<td><?php echo stripslashes ($donnees['mail'])?></td>
    					</tr>
    					<?php
     
    					//echo "</tr>\n";
    				$x++;
     
    			}// Fin de la boucle qui liste les clients
    			} //fin if
    		?>
     
    		</table>
    	</div>
    si on regarde les 2 premier <td> affiche une image pour supprimer et l autre pour modifier et çà fonctionne très bien.

    j'en viens a mon checkbox, je me suis dit comment mettre un checkbox devant le resultat de ma recherche au lieu des 2 image(ca je sais faire avec l'input) et avoir plusieurs bouton en dessous du tableau pour que quand je coche le deuxieme résultat et que je clique sur un des boutons ca fasse l action?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <button title="Supprimer" value="Supprimer"  type="submit">
          <img height="16" width="16" class="icon" alt="Supprimer" title="Supprimer" src="../image/delete.png"></button>
    <button title="Modifier" value="Modifier"  type="submit">
          <img height="16" width="16" class="icon" alt="Modifier" title="Modifier" src="../image/modif.png"></button>
    ect...

    En gros comment faire pour que le checkbox soit lié au button?
    Je continue mes recherches de mon coté
    et d'avance merci.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le fonctionnement est le meme : tes checkbox ont comme valeur l'id de la ligne.
    A l'arrivée,tu regardes si c'est "supprimer" ou "modifier" qui a été cliqué et tu executes les requetes correspondantes pour chaque id recu.

    Au passage c'est intval() qu'il faut utiliser pour une valeur numérique et mysql_real_escape_string() pour une chaine de caractere mais pas addslashes()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Bon j'ai essayé çà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    	<td class="imgtab2"><input type="checkbox" name="case" id="case" value="<?php $donnes['idclient'] ?>">
    					<td><?php echo intval ($donnees['idclient'])?></td>
    					<td><?php echo mysql_real_escape_string ($donnees['nom'])?></td>
    					<td><?php echo mysql_real_escape_string ($donnees['prenom'])?></td>
    					<td><?php echo mysql_real_escape_string ($donnees['adresse'])?></td>
    					<td><?php echo mysql_real_escape_string ($donnees['cp'])?></td>
    					<td><?php echo mysql_real_escape_string ($donnees['ville'])?></td>
    					<td><?php echo mysql_real_escape_string ($donnees['pays'])?></td>
    					<td><?php echo mysql_real_escape_string ($donnees['telfix'])?></td>
    					<td><?php echo mysql_real_escape_string ($donnees['telgsm'])?></td>
    					<td><?php echo mysql_real_escape_string ($donnees['fax'])?></td>
    					<td><?php echo mysql_real_escape_string ($donnees['mail'])?></td>
    					</tr>
    					<?php
     
    					//echo "</tr>\n";
    				$x++;
     
    			}// Fin de la boucle qui liste les clients
     
    		} //fin if
    		?>
    		</table>
    				<?php echo '<a href="recherche.php?supprimer_client=' . $donnees['idclient'] . '"';?> onclick="return confirm('Etes-vous sûr de vouloir supprimer ce client? <?php echo mysql_real_escape_string ($donnees['nom']) ?>&nbsp;<?php echo mysql_real_escape_string ($donnees['prenom'])?>?');" ><button title="Supprimer" value="Supprimer" for="case"  type="submit" >
    <img class="imgtab" src="../image/delete.png"/></button></a>
    Mais que ca soit cocher ou pas ca le supprime je coprend vraiment pas comment jdois faire en plus comme jsusi plus dans la boulce du resultat mon onclick n'affiche plus donnees['nom'] et prenom logique

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu devrais chercher sur le forum, on en parle toutes les semaines quasimment.
    Il faut nommer ton champ "en tableau" par exemple name="case[]".

    Au passage, pour afficher, il faut utiliser htmlspecialchars() et pas mysql_real_escape_string()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Merci pour tes réponse Sabotage voilà après avoir parcouru le forum je suis tombé sur un truc sympa mais elas ne fonctionne pas chez moi :s

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <td class="imgtab2"><input type="checkbox" name="case[]" value="<?php $donnees['idclient'] ?>">
    					<td><?php echo intval ($donnees['idclient'])?></td>
    					<td><?php echo htmlspecialchars ($donnees['nom'])?></td>
    					<td><?php echo htmlspecialchars ($donnees['prenom'])?></td>
    					<td><?php echo htmlspecialchars ($donnees['adresse'])?></td>
    					<td><?php echo htmlspecialchars ($donnees['cp'])?></td>
    					<td><?php echo htmlspecialchars ($donnees['ville'])?></td>
    					<td><?php echo htmlspecialchars ($donnees['pays'])?></td>
    					<td><?php echo htmlspecialchars ($donnees['telfix'])?></td>
    					<td><?php echo htmlspecialchars ($donnees['telgsm'])?></td>
    					<td><?php echo htmlspecialchars ($donnees['fax'])?></td>
    					<td><?php echo htmlspecialchars ($donnees['mail'])?></td>
    					</tr>
    					<?php
     
    					//echo "</tr>\n";
    				$x++;
     
    			}// Fin de la boucle qui liste les clients
     
    		} //fin if
    		?>
    		</table>
    		<?php if (isset($_POST['supp'])){
    		        mysql_query('DELETE FROM client WHERE idclient=IN (' . implode(",", $_POST['case']) . ')');
     
    } ?>
    <input type="submit" value="Supprimer" name="supp"/>
    qu'est ce que j'ai pu encore oublier :s

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Affiche ta requête pour voir ce qu'elle donne.

    Au passage encore, c'est une drole d'idée d'avoir mis la requete entre la fin du tableau et le bouton submit.
    En dehors du placement etrange, c'est une erreur de supprimer des enregistrements apres avoir fait l'affichage de tes données : tu ne vois alors pas les suppresssions qui viennent d'etre traitées.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. checkbox pour supprimer dans une table MySQL
    Par nad_ii dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 26/02/2015, 10h42
  2. [XL-2010] Utilisation d'un UserForm pour ajouter/modifier des enregistrements
    Par adashame dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/08/2014, 22h15
  3. [SQL Server 2000]Utiliser un Champs calculé pour en calculé un autre.
    Par PadawanDuDelphi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/03/2007, 10h05
  4. Réponses: 14
    Dernier message: 24/10/2006, 06h51
  5. Réponses: 8
    Dernier message: 08/04/2006, 18h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo