Reconnaitre le bouton submit

Fermé
jpaul_web Messages postés 62 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 5 février 2013 - 17 juil. 2009 à 11:58
jpaul_web Messages postés 62 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 5 février 2013 - 17 juil. 2009 à 13:47
Bonjour,
J'ai un petit problème avec mes submit...
J'aimerai savoir identifier le submit cliqué pour chaque ligne du tableau.
Quand je fais l'action supprimer, il efface chaque fois le dernier enregistrement...
Je devrai faire un truc du genre:
<input name="no" type="hidden" value="'.$no.'" /><input name="supp'.$no.'" type="submit" id="supp" value="Supprimer" />

et au début
for ($i=1; $i<6; $i++) {if(isset($_POST['supp'.$i.''])){ //6 étant le nombre d'enregistrement dans la base de données
	
		$no = $_POST['no']; 
		mysql_query("DELETE FROM infos_1er_page WHERE No='$no'");
	}}

Mais je ne sais pas si c'est possible...

J'ai un problème également avec deux action dans un même formulaire, mais là je devrais trouver sur le net...

1000 merci

Voici mon code au complet...

<?PHP 

require("conf.php3");
 
$sql = connect_sql();


   if(isset($_POST['supp'])){ // on verifie que le bouton nomme supp a ete poste;)
	
		$no = $_POST['no']; 
		mysql_query("DELETE FROM infos_1er_page WHERE No='$no'");
	}
	echo '<form action="" method="post" name="supp">';
	?>
<form action="editeur.php" method="post" name="edit">
<body>
<table width="1000" border="1" align="center" cellspacing="2">
  <tr>
    <th width="21"><div align="left"><strong>N°</strong></div></th>
    <th width="134"><div align="center"><strong>Auteur</strong></div></th>
    <th width="60"><div align="center"><strong>Groupe</strong></div></th>
    <th width="407"><div align="center"><strong>Contenu</strong></div></th>
    <th width="60"><div align="center"><strong>Debut</strong></div></th>
    <th width="60"><div align="center"><strong>Fin</strong></div></th>
    <th width="60"><div align="center"><strong>Date</strong></div></th>
    <th width="80"><div align="center"><strong>Supprimer</strong></div></th>
    <th width="60"><div align="center"><strong>Editer</strong></div></th>
  </tr>
 




  <p>
    <?PHP // récupération des données de la table
$requete = 'SELECT * FROM infos_1er_page ORDER BY No DESC';
$env = mysql_query($requete);
while($liste = mysql_fetch_array($env))
{
$no = $liste['No'];
$auteur = $liste['Auteur'];
$groupe = $liste['Groupe'];
$contenu = $liste['Contenu'];
$contenu = str_replace('"','\\"',$contenu);
// faire preceder les guillemets par des antislashes, attention aux apostrophes ' " ' et ' \\" '
$contenu = str_replace(array("\r","\n"),"",$contenu);
// remplacer les retours chariot par rien du tout (cette fois, delimiter les chaines par des guillemets)
$contenu=substr($contenu,0,29);
$debut = $liste['Debut'];
$fin = $liste['Fin'];
$date = $liste['Date'];


echo '  <tr> <td><div align="left">'.$no.'</div></td> <td><div align="left">'.$auteur.'</div></td> <td><div align="right">'.$groupe.'</div></td> <td> <div align="left">'.$contenu.'...</div></td> <td><div align="center"> '.$debut.'</div></td><td><div align="center"> '.$fin.'</div></td><td><div align="center">'.$date.'</div></td> <td><div align="center">
      <input name="no" type="hidden" value="'.$no.'" /><input name="supp" type="submit" id="supp" value="Supprimer" /> 
    </div></td> <td><div align="center"><input name="no" type="hidden" value="'.$no.'" /><input name="edit" type="submit" value="Editer" />
      </div> </td></tr> <br /> ';

} ?>
</form>
</table>


</body>

2 réponses

Bonjour

Plusieurs formulaires dans un tableau en XHTML et CSS. :
http://giminik.developpez.com/articles/xhtml-css/table-multi-form/

Je cite : "Notez que le champ de type hidden contient l'identifiant de la personne, c'est la seule manière fiable pour savoir sur qui porte la modification. Bien sûr, tout ceci relève de la programmation coté serveur, les champs de formulaire devraient contenir des noms, prénoms, date de naissance et sexe. Les étiquettes label doivent pointer sur l'identifiant d'un champ, cet identifiant doit être unique, une bonne méthode consiste à ajouter à l'attribut id, un numéro unique (ici, il s'agit du numéro de la personne). Mais on ne parlera que de la mise en forme du tableau et pas des techniques de programmation pour extraire des données d'une base... Le résultat du code ci-dessus peut être consulté sur cette page."

merci
0
jpaul_web Messages postés 62 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 5 février 2013 15
17 juil. 2009 à 13:47
J'ai un peu changer mon code, mais cela ne fonctionne toujours pas...
<?PHP 
$user = $_SERVER['PHP_AUTH_USER'];
$total = 0; $no_petit =10000; $no_grand =0; 
if ($user == "jpaul") $fichier="editeur";
//header('Location: http://www.biereau.be/'.$fichier.'.php');


require("conf.php3");
 
$sql = connect_sql();

for ($i=$no_petit; $i<$no_grand + 1; $i++) {if(isset($_POST['supp'.$i.''])){ //$total étant le nombre d'enregistrement dans la base de données
		$no = $_POST['no']; 
		mysql_query("DELETE FROM infos_1er_page WHERE No='$no'");
	}}
	//echo '<form action="" method="post" name="supp">';
	?>
<form action="editeur.php" method="post" name="edit">
<body>
<table width="1000" border="1" align="center" cellspacing="2">
  <tr>
    <th width="21"><div align="left"><strong>N°</strong></div></th>
    <th width="134"><div align="center"><strong>Auteur</strong></div></th>
    <th width="60"><div align="center"><strong>Groupe</strong></div></th>
    <th width="407"><div align="center"><strong>Contenu</strong></div></th>
    <th width="60"><div align="center"><strong>Debut</strong></div></th>
    <th width="60"><div align="center"><strong>Fin</strong></div></th>
    <th width="60"><div align="center"><strong>Date</strong></div></th>
    <th width="80"><div align="center"><strong>Supprimer</strong></div></th>
    <th width="60"><div align="center"><strong>Editer</strong></div></th>
  </tr>
 




  <p>
    <?PHP // récupération des données de la table
$requete = 'SELECT * FROM infos_1er_page ORDER BY No DESC';
$env = mysql_query($requete);
while($liste = mysql_fetch_array($env))
{
$no = $liste['No'];
if ($no < $no_petit) $no_petit = $no;
if ($no > $no_grand) $no_grand = $no;
$auteur = $liste['Auteur'];
$groupe = $liste['Groupe'];
$contenu = $liste['Contenu'];
$contenu = str_replace('"','\\"',$contenu);
// faire preceder les guillemets par des antislashes, attention aux apostrophes ' " ' et ' \\" '
$contenu = str_replace(array("\r","\n"),"",$contenu);
// remplacer les retours chariot par rien du tout (cette fois, delimiter les chaines par des guillemets)
$contenu=substr($contenu,0,29);
$debut = $liste['Debut'];
$fin = $liste['Fin'];
$date = $liste['Date'];
$total = $total + 1; // nombre d'enregistrement

echo ' <form action="" method="post" name="supp'.$no.'"> <tr> <td><div align="left">'.$no.'</div></td> <td><div align="left">'.$auteur.'</div></td> <td><div align="right">'.$groupe.'</div></td> <td> <div align="left">'.$contenu.'...</div></td> <td><div align="center"> '.$debut.'</div></td><td><div align="center"> '.$fin.'</div></td><td><div align="center">'.$date.'</div></td> <td><div align="center">
      <input name="no" type="hidden" value="'.$no.'" /><input name="supp'.$no.'" type="submit" id="supp" value="Supprimer" /> 
    </div></td> <td><div align="center"><input name="no" type="hidden" value="'.$no.'" /><input name="edit" type="submit" value="Editer" />'.$no_petit.'  '.$no_grand.'
      </form></div> </td></tr> <br /> ';

} 
$total_id = $no+$total;
?>
</form>
</table>


</body>
0