Recuperer valeur d'une case à cocher php

Résolu/Fermé
abdoul - 2 sept. 2009 à 18:25
 baran19 - 4 sept. 2009 à 13:07
Bonsoir,
j'ai un tableau qui presente la liste des enregistrement d'une de mes tables pour en modifier celui qui sera valider. j'ai donc mi une case à cocher pour choisir la ligne qui sera modifier, voilà où je plante je ne sais pas comment faire pour savoir quelle ligne a été choisi (dans mon code en fait)
Merci de m'aider.

<?php include("config.php");?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Document sans titre</title>
<style type="text/css">
<!--
.Style4 {font-size: 30px; font-variant: normal; color: #1241BC; font-family: Algerian;}
-->
</style>
</head>

<body>
<div align="center" class="Style4">LISTE DES CLIENTS</div>
<p> </p>
<p> </p>
<?php
//récupère tous les enregistrements
$select = 'SELECT codescte,nomscte,adrsgeo,tel,fax,dtescte FROM societe';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);

$Nmax = 10; // nombre par page
$Ncur = 0; // n° de la fiche courante

$Ndeb=@$_GET["num"]; // 1ère fiche transmise par l'URL
// si on a récupéré un résultat on l'affiche.
if($total) {
?>
<table width="616" border="2" align="center">
<tr>
<td width="52">CODE</td>
<td width="90"><div align="center">SOCIETE</div></td>
<td width="112"><div align="center">ADRESSE</div></td>
<td width="89"><div align="center">TELEPHONE</div></td>
<td width="92"><div align="center">FAXE</div></td>
<td width="155"><div align="center">DATE D'ENREGISTREMENT </div></td>
<td width="155">MODIFIER</td>
</tr>
<?php


// tant qu'il y a des fiches
while (($row = mysql_fetch_array($result))
&& ($Ncur<$Nmax+$Ndeb)) {
if($Ncur>=$Ndeb) {
?>
<tr>
<td><?php echo ($row['codescte']); ?></td>
<td><?php echo ($row['nomscte']); ?></td>
<td><?php echo ($row['adrsgeo']); ?></td>
<td><?php echo ($row['tel']); ?></td>
<td><?php echo ($row['fax']); ?></td>
<td><?php echo date("d/m/Y H:i:s",$row['dtescte']); ?></td>
<td><form name="form1" method="post" action="modif.php">
<label>
<input type="checkbox" name="checkbox" value="Modifier">
</label>
</form>
</td>
</tr>
<?php }
// une de plus
$Ncur++;
}?>
</table>

<br>
</div>
<table align="center" cellpadding=3>
<tr>
<?php // Navigation
// Des fiches avant ?
if($Ndeb > 0) { ?>
<td valign=top>
<A href="?num=<?php echo $Ndeb-$Nmax; ?>">Retour</A> </td>
<?php } ?>
<td>
<?php // N° des pages
$Npag = ceil(mysql_numrows($result)/$Nmax);
for($i = 1;$i<=$Npag;$i++) {
// Page courante ?
if($Ndeb == ($i-1)*$Nmax) { ?>
<?php echo $i; ?>
<?php } else { ?>
<A href=""
> <?php echo $i; ?> </A>
<?php }
} ?> </td>
<?php // Des fiches après ?
if($row) { ?>
<td valign=top>
<A href="?num=<?php echo $Ncur; ?>">Suite</A> </td>
<?php } ?>
</tr></table>
<?php
echo '</table>'."\n";
// fin du tableau.
} ?>
</body>
</html>

7 réponses

slt à tous je viens de trouver la solution à mon probleme. A la place d'une case à cocher j'ai décidé de placer une imge et d'y mettre un lien qui m'enverra à la page du formulaire. voici dc le code finale:

<?php
//récupère tous les enregistrements
$select = 'SELECT codescte,nomscte,adrsgeo,tel,fax FROM societe';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);

$Nmax = 10; // nombre par page
$Ncur = 0; // n° de la fiche courante

$Ndeb=@$_GET["num"]; // 1ère fiche transmise par l'URL
// si on a récupéré un résultat on l'affiche.
if($total) {
?>
</p>
<TABLE width="785" border="1" align="center" class="tableau">
<tr class="style3">
<th width="59" align="center">N°</th>
<th width="120" align="center">Societe</th>
<th width="130" align="center">Adresse</th>
<th width="90" align="center">Téléphone</th>
<th width="90" align="center">Faxe</th>
<th width="160" align="center">Date d'enregistrement</th>
<th width="90" align="center">Modification</th>
</tr>
<?php
while (($row=mysql_fetch_row($result))
&& ($Ncur<$Nmax+$Ndeb)) {
if($Ncur>=$Ndeb) {
?>
<tr>
<td align=\"center\"><?php echo $row[0] ?></td>
<td align=\"center\"><?php echo $row[1] ?></td>
<td align=\"center\"><?php echo $row[2] ?></td>
<td align=\"center\"><?php echo $row[3] ?></td>
<td align=\"center\"><?php echo $row[4] ?></td>
<?php
$sql1="SELECT dtescte FROM societe WHERE codescte='".$row[1]."'";
$result1=mysql_query($sql1);
$row1 = mysql_fetch_row($result1);
?>
<td align=\"center\"><?php echo date("d/m/Y H:i:s",$row1[0]) ?></td>
<td align=\"center\"><a href="modif_client_form.php?code=$row[0]" target="bas"><img src="l_connect.gif"></a> </td>
</tr>
<?php
}
$Ncur++;
}
?>
</TABLE>

<table align="center" cellpadding=3>
<tr>
<?php // Navigation
// Des fiches avant ?
if($Ndeb > 0) { ?>
<td valign=top>
<A href="?num=<?php echo $Ndeb-$Nmax; ?>">Retour</A> </td>
<?php } ?>
<td>
<?php // N° des pages
$Npag = ceil(mysql_numrows($result)/$Nmax);
for($i = 1;$i<=$Npag;$i++) {
// Page courante ?
if($Ndeb == ($i-1)*$Nmax) { ?>
<?php echo $i; ?>
<?php } else { ?>
<A href="?num=<?php echo ($i-1)*$Nmax; ?>"
> <?php echo $i; ?> </A>
<?php }
} ?> </td>
<?php // Des fiches après ?
if($row) { ?>
<td valign=top>
<A href="?num=<?php echo $Ncur; ?>">Suite</A> </td>
<?php } ?>
</tr></table>
<?php
echo '</table>'."\n";
// fin du tableau.
}
?>

Je tiens encore à vous remercier pour votre aide!
2
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
2 sept. 2009 à 18:34
if($_POST['checkbox'] == 'on') {
    ...
}
// ou
if(isset($_POST['checkbox'])) {
    ...
}
0
apres avoir choisi la ligne à modifier un formulaire s'affiche avec les donnée à changer, donc mon probleme se situe au niveau de la requete coment est ce que je fais pour savoir quelle ligne a été selectionné.
excuse moi encore et merci
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
2 sept. 2009 à 19:05
<input type="checkbox" name="checkbox-{id_element}" />

Ensuite, tu fais une boucle. Il faut que l'id du premier élément soit stocké dans une variable.
for($i=$premierElement;$i<$nbElement;$i++){
    if($_POST['checkbox-'.$i] == 'on') {
         // Si la case de l'élement ayant comme id $i est cochée ...
    }
    // ...
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
essais de changer la valeur de votre checkbox comme ca
<input type="checkbox" name="checkbox[]" value="<?php echo ($row['id']); ?>">
noter que le nom il sera un tableau
et aussi changer votre roquette sql pour retirer le champs id
comme ca par exemple
$select = 'SELECT id,codescte,nomscte,adrsgeo,tel,fax,dtescte FROM societe';
qui doit être auoincrementer
0
salut à tous
bon j'ai essayé la methode d'avion-f16 mais qd je valide rien
j'ai ajouté une requete sql pour verifier que si on coche une case que quelque chose se passe mais je ne sais pas si j'ai fait exactement ce qu'il fallait et comme je ne sais pas comment recuperer le nombre total d'enregistrement j'ai directement mis le chiffre. et en ce qui concerne la proposition de Bacha j'ai pas pas bien compris

<body>
<div align="center" class="Style4">LISTE DES CLIENTS</div>
<p> </p>
<p> </p>
<?php
//récupère tous les enregistrements
$select = 'SELECT codescte,nomscte,adrsgeo,tel,fax,dtescte FROM societe';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);

$Nmax = 10; // nombre par page
$Ncur = 0; // n° de la fiche courante

$Ndeb=@$_GET["num"]; // 1ère fiche transmise par l'URL
// si on a récupéré un résultat on l'affiche.
if($total) {
?>
<table width="616" border="2" align="center">
<tr>
<td width="52">CODE</td>
<td width="90"><div align="center">SOCIETE</div></td>
<td width="112"><div align="center">ADRESSE</div></td>
<td width="89"><div align="center">TELEPHONE</div></td>
<td width="92"><div align="center">FAXE</div></td>
<td width="155"><div align="center">DATE D'ENREGISTREMENT </div></td>
<td width="155">MODIFIER</td>
</tr>
<?php


// tant qu'il y a des fiches
while (($row = mysql_fetch_array($result))
&& ($Ncur<$Nmax+$Ndeb)) {
if($Ncur>=$Ndeb) {
?>
<tr>
<td><?php echo ($row['codescte']); ?></td>
<td><?php echo ($row['nomscte']); ?></td>
<td><?php echo ($row['adrsgeo']); ?></td>
<td><?php echo ($row['tel']); ?></td>
<td><?php echo ($row['fax']); ?></td>
<td><?php echo date("d/m/Y H:i:s",$row['dtescte']); ?></td>
<td><form name="form1" method="post" action="listeclient5.php">
<label>
<input type="checkbox" name="checkbox-{codescte}" />
</label>
</form>
</td>
</tr>
<?php }
// une de plus
$Ncur++;
}?>
</table>
<br>
</div>
<table align="center" cellpadding=3>
<tr>
<?php // Navigation
// Des fiches avant ?
if($Ndeb > 0) { ?>
<td valign=top>
<A href="?num=<?php echo $Ndeb-$Nmax; ?>">Retour</A> </td>
<?php } ?>
<td>
<?php // N° des pages
$Npag = ceil(mysql_numrows($result)/$Nmax);
for($i = 1;$i<=$Npag;$i++) {
// Page courante ?
if($Ndeb == ($i-1)*$Nmax) { ?>
<?php echo $i; ?>
<?php } else { ?>
<A href=""
> <?php echo $i; ?> </A>
<?php }
} ?> </td>
<?php // Des fiches après ?
if($row) { ?>
<td valign=top>
<A href="?num=<?php echo $Ncur; ?>">Suite</A> </td>
<?php } ?>
</tr></table>
<?php
echo '</table>'."\n";
// fin du tableau.
}
$sql="SELECT codescte FROM societe limit 0,1";
$req=mysql_query($sql);
$premier = mysql_fetch_array($req);
//echo ($premier['codescte']);}


for($i=$premier;$i<71;$i++){
if (isset($_POST['ok'])){
if($_POST['checkbox-'.$i] == 'on') {
// Si la case de l'élement ayant comme id $i est cochée ...
$requete="SELECT * FROM societe WHERE codescte=".$i;
$resultat=mysql_query($requete);
while ($var=mysql_fetch_array($resultat)){
echo ($var['codescte']);
echo ($var['nomscte']);}
}
// ...
}}

?>
</body>
0
desolé d'avoir changé de pseudo j'avais pa reamarquer que mon pote avait envoyer un msg
0