Probleme pour lier une checkbox à un champ texte

cs_extremenet Messages postés 2 Date d'inscription dimanche 19 janvier 2003 Statut Membre Dernière intervention 12 novembre 2007 - 12 nov. 2007 à 13:23
fodjio Messages postés 16 Date d'inscription jeudi 26 juin 2003 Statut Membre Dernière intervention 3 juin 2009 - 6 mai 2009 à 11:51
Bonjour,
je viens ici car cela fait tres long moment que je n'arrive pas à trouver la solution à mon probéme :

J'ai créé  un tableau suivant les donné d'une base de donné mysql. le tableau s'affiche trés bien.
dans ce tableau, j'ai 2 colonnes : 1 case a cocher et 1 champ texte avec le resultat de la base en value.
mon but est de pouvoir modifier les champs qui ont été uniquement selectionné car j'ai a la fin de mon tableau une liste déroulante d'action "modifier le texte, supprimer" puis un bouton valider. mon probléme et que quand je modifi la premiére la ligne celle ci est prise en compte mais quand je veus modifier un autre champ il me modifi bien le champ mais avec la valeur du premier je n'arrive pas du moins je ne sais pas lier le bouton a cocher et le champ texte lié.
Pour ce qui est de supprimer ceci marche bien .

Voici le code pour plus de claireté :

code du tableau
<?php
echo" <form action="photos.php" method="post">";

$liste_photo = mysql_query("SELECT * FROM photos where idcategorie='$idcategorie' ");
while($rowphoto = mysql_fetch_array($liste_photo)){
$nom = stripslashes($rowphoto['nom'] );
$idphoto = stripslashes($rowphoto['idphoto'] );

echo "<tr ><td width="30">  </td<td width="200"> </td></tr>"; 
}
echo "<tr><td colspan="4" align="left" ><select name="action" size="1"  style="font-family: comic sans ms"  ><option VALUE= selected>Action</option><option VALUE="1" >Modifer</option></option><option VALUE="2">Supprimer</option> </select> </form></td></tr>";
 
Code traitement tableau :
 if(isset($_POST['action'])){
if ($_POST['action']=="1")
{
$liste = $_POST['liste'];
$nombreliste = count($_POST['liste']);
    for($i=0;$i!=$nombreliste;$i++){
 $description=$_POST['description'];
  $modifier_photo = "update photos set description='$description[]'  where idphoto ='$liste[]'";
$modifier_photo_defaut = mysql_query($modifier_photo) or die(mysql_error());
  
  }
  if ($i <=1 ){ echo "
Description modifiée
"; }
  else
  { echo"
Descriptions modifiées
"; }
  }}

Merci par avance

2 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
12 nov. 2007 à 22:29
Hello,

utilise un compteur :

$iCpt = 0;
while($rowphoto = mysql_fetch_array($liste_photo, MYSQL_ASSOC)){
$nom = stripslashes($rowphoto['nom'] );
$idphoto = stripslashes($rowphoto['idphoto'] );

echo
"<tr ><td width="30">  </td<td
width="200"> </td></tr>"; 
$iCpt ++;
}

parce que les checkboxes n'existent que si elles sont cochées. Pas les "input" de type texte. Donc si tu as 3 cases à cocher en face de 3 champs texte, avec ton script, et que tu ne coches que la 3ème case à cocher, celle-ci aura comme clef 0 : $_POST['liste'][0] = valeur de la 3ème case à cocher. Alors que ton 3ème champ texte aura comme clef 2 : $_POST['description']{2} = valeur du 3ème champ texte.
Et évite les SELECT *. Nomme les champs dont tu as besoin, même si tu as besoin de tous les champs de ta table.
Et au lieu d'échapper tes guillemets dans le html avec echo :
echo '';
c'est plus lisible.
Et j'arrête là avant de m'attaquer au html ;-)
0
fodjio Messages postés 16 Date d'inscription jeudi 26 juin 2003 Statut Membre Dernière intervention 3 juin 2009
6 mai 2009 à 11:51
Merci pour ton astuce Malalam
0
Rejoignez-nous