Supprimer une ligne d'un tableau

Petit nouveau ! | 5 Messages

23 juil. 2009, 21:08

Bonjour,

J'ai encore une chose (cf sujet Redirection) qui fonctionne en local avec wamp et ne fonctionne pas sur le serveur.

J'affiche les données d'une table dans un tableau (jusqu'ici tout va bien). Et au bout de chaque ligne, j'ai ajouté un bouton supprimer (un peu comme sur l'interface de mysql )

Mon code (qui est peut-être maladroit mais qui fonctionne parfaitement en local)

<td><a href="client.php?id=<?php echo $_GET['id']; ?>&action=delete&numinter=<?php echo $donnees['numinter']; ?>"><img src="images/delete.png" "border=0"></a></td>

Par contre sur le serveur, lorsque je clique sur le bouton, cela ne fonctionne pas.

Je ne sais pas si l'exposé de mon problème est très clair mais toute aide serait la bienvenue ;-)

Mammouth du PHP | 693 Messages

23 juil. 2009, 21:11

ben, faudrait montre le code de client.php, et surtout comment tu dispatches les actions.

Petit nouveau ! | 5 Messages

24 juil. 2009, 13:13

ben, faudrait montre le code de client.php, et surtout comment tu dispatches les actions.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>xxxxxxxxx</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Language" content="fr" />
<link rel="stylesheet" type="text/css" href="default.css" >
</head>
<body>
<div id="conteneur">
<div id="entete">
<a href="index.php"><img src="images/xxxxx.jpg" "border=0" align="left"></a>
</div>

<div id="contenu">
<?php
mysql_connect("xxxxxxr", "dxxxxxx", "yxxxxxxx"); // Connexion à MySQL
mysql_select_db("xxxxxx"); // Sélection de la base

$reponse = mysql_query("SELECT prenom,nom FROM client WHERE id_client = ".$_GET['id'].""); // Requête SQL


// On fait une boucle pour lister tout ce que contient la table :

while ($donnees = mysql_fetch_array($reponse) )
{
?>
<p id="titre">
Suivi des interventions de <?php echo $donnees['prenom']; ?> <?php echo $donnees['nom']; ?>
</p>
<?php
}

mysql_close(); // Déconnexion de MySQL
?>



<TABLE width="100%">
<TR>
<TD width="12" bgcolor="#1A1E5E"><Font color=#FFFFFF><B> Date </B></font></TD>
<TD width="20" bgcolor="#1A1E5E"><Font color=#FFFFFF><B> Interlocuteur </B></font></TD>
<TD width="30" bgcolor="#1A1E5E"><Font color=#FFFFFF><B> Situation </B></font></TD>
<TD width="70" bgcolor="#1A1E5E"><Font color=#FFFFFF><B> Avancée </B></font></TD>
<TD width="10" bgcolor="#1A1E5E"><Font color=#FFFFFF><B> Etat </B></font></TD>
</TR>

<form method="POST" action="add_inter.php?id=<?php echo $_GET['id']; ?>">
<tr>
<td>

<input type="text" name="date" size="12" value="<?php echo date("d/m/Y" ); ?>" maxlength="10">

</td>
<td>
<select name="interlocuteur" >
<option value="xxxxn">xxxxx</option>
<option value="xxxxa">xxxxxtion>
<option value="xxxxl">xxxx</option>
<option value="xxx">xxxxs</option>
</select>
</td>
<td>

<select name="typemessage">
<option value="Appel téléphonique sortant">Appel téléphonique sortant</option>
<option value="Appel téléphonique entrant">Appel téléphonique entrant</option>
<option value="Email sortant">Email sortant</option>
<option value="Email entrant">Email entrant</option>
<option value="Intervention">Intervention</option>
<option value="Pas de contact client">Pas de contact client</option>
</select>
</td>
<td>
<input type="text" name="objet" size="70" value="" maxlength="200">
</td>
<td>
<select name="etat">
<option value="En cours">En cours</option>
<option value="Clôturé">Clôturé</option>
</select>

</td>
<td>
<input type="submit" value="Ajouter" name="ajouter">
</td>
</tr>
</form>

<?php
mysql_connect("dxxxxx", "xxxxx", "xxxxxx"); // Connexion à MySQL
mysql_select_db("xxxxxx"); // Sélection de la base extranet

$reponse = mysql_query("SELECT date,interlocuteur,typemessage,objet,etat FROM intervention WHERE id_client = ".$_GET['id']." order by numinter desc"); // Requête SQL

// On fait une boucle pour lister tout ce que contient la table :

while ($donnees = mysql_fetch_array($reponse))
{
?>

<TR>
<td bgcolor="#E5E5E5" valign="top"> <?php echo $donnees['date']; ?></TD>
<td bgcolor="#E5E5E5" valign="top"> <?php echo $donnees['interlocuteur']; ?> </TD>
<td bgcolor="#E5E5E5" valign="top"> <?php echo $donnees['typemessage']; ?> </TD>
<td bgcolor="#E5E5E5" valign="top"> <?php echo $donnees['objet']; ?> </TD>
<td bgcolor="#E5E5E5" valign="top"> <?php echo $donnees['etat']; ?> </TD>
<td><a href="client.php?id=<?php echo $_GET['id']; ?>&action=delete&numinter=<?php echo $_GET['numinter']; ?>"><img src="images/delete.png" "border=0"></a></TD>
</TR>
<?php
}
mysql_close(); // Déconnexion de MySQL
?>
</TABLE>

</div>
<p id="footer">xxxxxxxxxxxxxx</p>
</div>
</body>
</html>

Eléphant du PHP | 65 Messages

24 juil. 2009, 14:07

Qu'est-ce qui ne fonctionne pas lorsque tu cliques sur le bouton ?

Si le code que tu nous montres est client.php,
à priori,
il n'y a aucune raison
pour qu'un clique sur le bouton delete
entraîne la suppression d'une intervention.

Pour cela,
il faudrait un bout de code du style :

Code : Tout sélectionner

if (isset($_GET['action']) && $_GET['action']=='delete') { // TOTDO : Requête de destruction de l'intervention ayant la clé $GET[numinter''] }
Fred

Petit nouveau ! | 5 Messages

24 juil. 2009, 14:22

Qu'est-ce qui ne fonctionne pas lorsque tu cliques sur le bouton ?

Si le code que tu nous montres est client.php,
à priori,
il n'y a aucune raison
pour qu'un clique sur le bouton delete
entraîne la suppression d'une intervention.

Pour cela,
il faudrait un bout de code du style :

Code : Tout sélectionner

if (isset($_GET['action']) && $_GET['action']=='delete') { // TOTDO : Requête de destruction de l'intervention ayant la clé $GET[numinter''] }
Fred
Pourtant ce code fonctionne parfaitement en local, il supprime immédiatement la ligne. Mais je vais essayer ta piste.

ViPHP
ViPHP | 2291 Messages

24 juil. 2009, 14:28

Bête question peut-être mais le $_GET['numinter'] c'est bien un $_GET se ne serais pas un $donnees['numinter'] :?:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 453 Messages

24 juil. 2009, 15:28

Hello,

Je peux me tromper, mais j'ai l'impression qu'il manque l'encodage d'url. :-k Regarde en faisant ceci :
<td><a href="client.php?id=<?php echo urlencode($_GET['id']); ?>&action=delete&numinter=<?php echo urlencode($donnees['numinter']); ?>"><img src="images/delete.png" border="0" /></a></td> 


<<<EDIT
* Que donne ceci ?
echo $donnees['numinter']." => ".$_GET['id'];
* De mémoire, l'élément b et à oublier au profit de strong. D'une manière générale, séparer le contenu de la mise en page (span).
EDIT;

Au passage, pense à factoriser ton code (lire ou relire ce tut). Je te signale aussi que les éléments html et ses attributs s'écrivent en minuscules. Là, je viens de te corriger la ligne html :
border="0" />
Modifié en dernier par niuxe le 24 juil. 2009, 16:05, modifié 2 fois.
La Tux attitude avec les kiw'z syou plait
Komodo Edit - Inkscape - Dia

Eléphant du PHP | 65 Messages

24 juil. 2009, 15:45

Bête question peut-être mais le $_GET['numinter'] c'est bien un $_GET se ne serais pas un $donnees['numinter'] :?:
Ici ?
<td><a href="client.php?id=<?php echo $_GET['id']; ?>&action=delete&numinter=<?php echo $_GET['numinter']; ?>"><img src="images/delete.png" "border=0"></a></TD> 
C'est vrai, que c'est certainement mieux de mettre :
<td><a href="client.php?id=<?php echo $_GET['id']; ?>&action=delete&numinter=<?php echo $donnees['numinter']; ?>"><img src="images/delete.png" "border=0"></a></TD> 
pour pouvoir écrire :

Code : Tout sélectionner

if (isset($_GET['action']) && $_GET['action']=='delete') { // TODO : Requête de destruction de l'intervention ayant la clé $GET['numinter'] }
Fred