Supprimer une ligne d'un tableau

Eléphanteau du PHP | 32 Messages

23 mai 2008, 15:56

bonjour,

je dois avancer le développement d'un logiciel de gestion des clients pour une entreprise dans laquelle je fais un stage.

Un problème se pose à moi n'ayant pas eu beaucoup de cours en php dans mon bts informatique de gestion :

j'ai un tableau qui renvoie une liste de clients et prospect ayant fait des demandes de devis, je dois créer pour chaque ligne de ce tableau un bouton supprimé (si possible en affichant simplement une petite image avec un croix rouge), à partir de ce bouton je devrais ouvrir un fenêtre d'alerte qui dis "êtes vous sure de vouloir supprimer ce client/prospect" avec deux boutons (ok et annuler) et
_Si ok supprimer la ligne du tableau et donc supprimer aussi l'information dans la BDD
_Si annuler ne rien faire


Pour l'instant le code du tableau c'est :
echo '<h3><table bgcolor="#FF6600" border="1" cellspacing="0" cellpadding="5" rules="rows" width="100%">';

if (mysql_num_rows($requete)!=0){
$n=mysql_num_fields($requete);

echo '<tr>';
for($i=0;$i<$n-1;$i=$i+1){

echo '<td  align="left"><b>'.mysql_field_name($requete, $i).'</b>&nbsp;<span 
onclick=TableOrder(event,1)>▼</span><span onclick=TableOrder(event,0)>▲</span></td>';

}
echo '</tr>';
}
else { echo '<br><br><h2 class=form><blink><b>pas de résultat</b></h2>';}

while($res = mysql_fetch_row($requete)){

	echo '<tr>';
	for ($i=0;$i<$n-1;$i=$i+1){ 	echo '<tdbgcolor="#FFFFFF">'.$res[$i].'</td>';	}
	echo '<td bgcolor="#FFFFFF"><a href="fiche_client.php?id=' .$res[$n-1].'">détails</a></td>';

[color=red][Je souhaite mettre ici mon bouton supprimer]	[/color]

        echo '</tr>';
					}
echo '</table></h3>';


Récapitulatif : créer un bouton supprimer qui s'affiche avec une croix rouge, sur tout les lignes d'un tableau
créer une boite d'alerte lorsqu'on click sur supprimé pour ne pas faire d'erreur
et que le bouton supprimer supprime de la page et de la BDD

d0m
Mammouth du PHP | 1141 Messages

23 mai 2008, 16:11

salut,

il te faut un formulaire pour chaque ligne contenant un bouton de soumission de type submit correspondant à la suppression de la ligne.

Ensuite un traitement PHP qui vérifie quel bouton a été cliqué et supprime la bonne ligne.

Eléphanteau du PHP | 32 Messages

23 mai 2008, 16:23

Je vois en gros mais serait il possible que tu sois plus explicite ?

d0m
Mammouth du PHP | 1141 Messages

23 mai 2008, 16:31

ok je vais l'etre :
commence déjà à coder ne serait ce que le code html (formulaires + boutons) et regarder les tutos sur les formulaires.
On ne va pas te faire tes scripts, juste t'aider là ou tu as des problèmes.

Eléphanteau du PHP | 32 Messages

23 mai 2008, 16:39

Oui et c'est d'ailleurs ce que je souhaite car j'aimerai apprendre ! c'est dur d'avoir un projet de stage qu'on ne maitrise qu'a moitier du fait que les cours ne sont pas vraiment relier avec cela !

deja pour créer le bouton c'est :
echo '<tr>';
	for ($i=0;$i<$n-1;$i=$i+1){ 	echo '<td bgcolor="#FFFFFF">'.$res[$i].'</td>';	}
	echo '<td bgcolor="#FFFFFF"><a href="fiche_client.php?id=' . $res[$n-1] . '">détails</a></td>';
[size=18]	echo '<td><input type="submit" value="supprimer"></td>';[/size]
	echo '</tr>';

par contre c'est quoi le formulaire ?

gbx
Invité n'ayant pas de compte PHPfrance

23 mai 2008, 16:41

au lieu d'un formulaire pour chaque enregistrement (ce qui est un peu lourd tout de même), je te conseille plutôt de faire un lien de la forme :

Code : Tout sélectionner

<img src="croix.gif" /><a href="page.php?action=del&id=xx" onclick="return(confirm('Etes-vous sûr de vouloir supprimer cet enregistrement ?'));"></a>
ou "xx" est le numéro de ton enregistrement.
Si tu cliques sur la croix, une boite de dialogue apparaitra avec deux boutons : "ok" et "annuler".
Le seul Hic c'est que cette boite c'est du javascript, le client devra donc avoir le js activé pour avoir cette confirmation.

Ce code est à placer dans ta boucle bien sûr ;)

bon courage

Invité
Invité n'ayant pas de compte PHPfrance

23 mai 2008, 16:43

oups petite erreur, la balise <img> et à placer entre ton <a href> et ton </a>

Code : Tout sélectionner

<a href=".."><img src=".." /></a>
voilà qui est mieux

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

23 mai 2008, 16:43

Modération :
flippaeti, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 32 Messages

23 mai 2008, 17:08

le problème qui se pose a moi depuis le début ne l'ayant jamais vu, c'est que met on a la place de page.php


<a href="page.php?action=del&id=xx" onclick="return confirm('Etes-vous sûr de vouloir supprimer cet enregistrement ?');"></a> 

gbx
Invité n'ayant pas de compte PHPfrance

23 mai 2008, 17:16

page.php c'est la page qui va traiter la demande de suppression.
Je vais pas te faire un cours de php mais te dire de quoi elle sera composée :

-d'une condition qui teste la valeur de ta variable $action
if ($_GET['action']=='del') {
 //traitement
}
-d'une requête SQL qui prendra en compte la valeur de la variable $id

Code : Tout sélectionner

DELETE FROM tatable where enregistrement=$id
-et éventuellement d'une redirection

pour plus de détails il faudra lire quelques bouquins et/ou tutos !

Invité
Invité n'ayant pas de compte PHPfrance

02 juin 2008, 10:17


-d'une requête SQL qui prendra en compte la valeur de la variable $id

pour plus de détails il faudra lire quelques bouquins et/ou tutos !
Comment formuler ma requete pour obtenir mon id celon la ligne selectionné

Mammouth du PHP | 1353 Messages

02 juin 2008, 10:25

http://www.phpfrance.com/tutoriaux/inde ... re-de-base

Interesse toi particulièrement à $_POST et $_GET qui sont expliqué dans ce tuto.

L'idée c'est que dans ton url tu as action=del&id=xx...

Avec les indices de gbx tu arrives à récupérer la valeur de action... Tu peux assez facilement faire pareil avec id...
Tell me and I forget. Teach me and I remember. Involve me and I learn.