Page 1 sur 1

petit problème de checked=checked

Posté : 02 févr. 2012, 19:42
par newbit
Bonjour à tous, j'ai un petit problème de checked=checked avec 2 tables et un formulaire.
j'arrive pas que toutes les checkbox soient validées .
Si vous pouvez m'expliquez où je me trompe.

<form action="" method="post" name="inser">
<?php 
$sql0="Select * FROM objets  WHERE name ='$partenaire' ORDER BY objet";$res0=mysql_query($sql0) or die ('Erreur SQL0!'.$sql0.mysql_error());
 while(@$va=mysql_fetch_array($res0))
{ 
$objet=$va['objet'];  $id_objet=$va['id_objet'];


$sql1="Select * FROM achat_adherents WHERE id_adherent= $id_adherent";$res1=mysql_query($sql1) or die ('Erreur SQL1!'.$sql1.mysql_error()); 

 while(@$va1=mysql_fetch_array($res1)){ $idobjet1=$va1['id_objet'];  $nom=$va1['id_adherent'];
 if($id_objet==$idobjet1 AND $nom==$id_adherent){ $kc='checked="checked"';}else{$kc='';}
 }



?>
<p><input name="adherent" type="hidden" value="<?php echo $id_adherent; ?>">
<input name="obj[]" type="hidden" value="<?php echo $objet;?>">
<?php echo $objet  ?><input name="ob[]" type="checkbox" value="<?php echo $id_objet;  ?>"<?php echo $kc;?>>

</p><?php }



?>


?>
<p><input name="adherent" type="hidden" value="<?php echo $id_adherent; ?>">
<input name="obj[]" type="hidden" value="<?php echo $objet;?>">
<?php echo $objet  ?><input name="ob[]" type="checkbox" value="<?php echo $id_objet;  ?>"<?php echo $kc;?>>

</p><?php }



?>

Re: petit problème de checked=checked

Posté : 04 févr. 2012, 15:10
par Ryle
Je ne comprend pas quel est le problème... quel résultat est-ce que tu attends, quel résultat est-ce que tu obtiens ?

Si certaines cases ne sont pas cochées alors qu'elles le devraient, c'est que le test qui te permet de définir ta variable $kc n'est pas bon :)

Re: petit problème de checked=checked

Posté : 04 févr. 2012, 15:27
par sirakawa
Si certaines cases ne sont pas cochées alors qu'elles le devraient, c'est que le test qui te permet de définir ta variable $kc n'est pas bon :)
OUI, mais certains navigateurs font de la résistance et ne montrent pas à coup sûr la case "checkée", en particulier derrière un F5.
Une piste est d'aller voir le code source de la page, pas le php, celui qu'il produit, pour voir si les checked sont en place....

Re: petit problème de checked=checked

Posté : 06 févr. 2012, 23:31
par newbit
merci de m'avoir répondu,
je pense que j'ai trouvé, ma 2ième boucle while n'était pas au bon endroit.
j'ai un autre problème qui apparait .
dans le deuxième while mon else de marche pas.
si je mets une variable dans mon else. elle ne s'affiche pas.


$sql0="Select * FROM objets  WHERE name ='$partenaire' ORDER BY objet";$res0=mysql_query($sql0) or die ('Erreur SQL0!'.$sql0.mysql_error());
 while(@$va=mysql_fetch_array($res0))
{ 
$objet=$va['objet'];  
$id_objet=$va['id_objet'];


?>
<p><input name="adherent" type="hidden" value="<?php echo $id_adherent; ?>">
<input name="obj[]" type="hidden" value="<?php echo $objet;?>">
<?php echo $objet  ?><input name="ob[]" type="checkbox" value="<?php echo $id_objet;  ?>"
<?php 

$sql1="Select * FROM achat_adherents WHERE id_adherent= $id_adherent and id_objet='$id_objet'";$res1=mysql_query($sql1) or die ('Erreur SQL1!'.$sql1.mysql_error()); 

 while(@$va1=mysql_fetch_array($res1)){ 
 $idobjet1=$va1['id_objet'];  
 $nom=$va1['id_adherent'];
 $a=$va1['chec'];
 
 if($id_objet==$idobjet1 AND $nom==$id_adherent and $a==1){ echo'checked="checked"';}else{echo'';}
}echo '>';

Re: petit problème de checked=checked

Posté : 08 févr. 2012, 11:18
par newbit
Bonjour,
un p'tit up je vais essayer d'expliquer mon problème un peu mieux.
$sql0="Select * FROM objets  WHERE name ='$partenaire' ORDER BY objet";$res0=mysql_query($sql0) or die ('Erreur SQL0!'.$sql0.mysql_error());
 while(@$va=mysql_fetch_array($res0))
{
$objet=$va['objet'];  
$id_objet=$va['id_objet'];
?>
<p><input name="adherent" type="hidden" value="<?php echo $id_adherent; ?>">
<input name="obj[]" type="hidden" value="<?php echo $objet;?>">
<?php echo $objet  ?><input name="ob[]" type="checkbox" value="<?php echo $id_objet;  ?>"
jusque là tout va bien j'ai mis ma 2ième boucle while qui me dis si c'est bon la checkbox est cochée. ce que je voulais.

mais mon else ne fonctionne pas.
<?php

$sql1="Select * FROM achat_adherents WHERE id_adherent= $id_adherent and id_objet='$id_objet'";$res1=mysql_query($sql1) or die ('Erreur SQL1!'.$sql1.mysql_error());

 while(@$va1=mysql_fetch_array($res1)){
 $idobjet1=$va1['id_objet'];  
 $nom=$va1['id_adherent'];
 $a=$va1['chec'];
 
 if($id_objet==$idobjet1 AND $nom==$id_adherent and $a==1){ echo'checked="checked"';}else{echo'';}
}echo '>';
si je change ma 2ième boucle en demandant si c'est ok : on met la date/ si c'est pas bon : on met la checkbox.
la checkbox ne s'affiche pas.
echo $objet;
$sql1="Select * FROM achat_adherents WHERE id_adherent= $id_adherent and id_objet='$id_objet'";$res1=mysql_query($sql1) or die ('Erreur SQL1!'.$sql1.mysql_error()); 

 while(@$va1=mysql_fetch_array($res1)){ 
 $idobjet1=$va1['id_objet'];  
 $nom=$va1['id_adherent'];
 $a=$va1['chec'];
 $date=$va1['date_achat'];
 
 if($id_objet==$idobjet1 AND $nom==$id_adherent and $a===1)
{ echo 'a été validé le '.$date;} // la date s'affiche

else{ echo'<input name="ob[]" type="checkbox" value="'.echo $id_objet.'">';}//checkbox ne s'affiche pas

su quelqu'un pouvait m'expliquer pourquoi :oops:

Re: petit problème de checked=checked

Posté : 08 févr. 2012, 18:40
par newbit
ayé j'ai trouvé mon problème
si cela intéresse du monde, il faut mettre
 $requete = "SELECT count(*) as nb FROM   achat_adherents WHERE id_objet = '$id_objet' and id_adherent = '$id_adherent'";$req_exec = mysql_query($requete) or die(mysql_error());$resultat = mysql_fetch_assoc($req_exec);
 	             
 	   if ($resultat['nb'] == 0 )
 	            // Résultat du comptage = 0 
 	            { $p='<input name="ob[]" type="checkbox" value="'. $id_objet.'">';}
 else{
				 $sql1="Select * FROM achat_adherents WHERE id_adherent= $id_adherent and id_objet='$id_objet'";$res1=mysql_query($sql1) or die ('Erreur SQL1!'.$sql1.mysql_error()); 
				 
				  while(@$va1=mysql_fetch_array($res1)){ 
				  
				  $date=$va1['date_achat'];
				 
				 $p='a été validé le '.$date;}

}echo $p;

à la place du 2ième while. si quelqu'un a mieux je prends ^^