Checkbox et update [Résolu]

refkaben 151 Messages postés vendredi 19 août 2005Date d'inscription 21 février 2006 Dernière intervention - 18 oct. 2005 à 10:56 - Dernière réponse : refkaben 151 Messages postés vendredi 19 août 2005Date d'inscription 21 février 2006 Dernière intervention
- 27 oct. 2005 à 14:38
Bonjour à tous!
j'ai un pb avec le checbox, en fait je veux faire un update selon que le checkbox soit checked mais ça ne marche pas, je vois que l'update s'execute quelque soit la valeur du checkbox
voila mon code:
<? $requete mysql_query(" select * from entreprise where valide'non' ")or die("selection impossible");
?>

<tr align="center"><td align="center"> Validation et confirmation des Comptes des entreprises Membres </td></tr>
<form name ="formul" action="validercompte.php?action="valider" method="post"><table border="1">
<tr><td>nentreprise</td......<?php


while($resultat= mysql_fetch_array($requete)) {?><tr<? echo $resultat["nentreprise"]; ?></td><td><? echo $resultat["nom"]; ......}?>

</tr> <tr><td></td><td></td></tr>
<? if(($action=="valider") && (isset($_POST['afaire']) )){ $sqlmysql_query(" UPDATE entreprise set valide 'oui' ");} ?>

il s'agit de selectionner et afficher toutes les entreprises qui ont le champs valide"non", puis si l'utilisateur check le checkbox de l'entreprise qu'il veut pour faire valider et par la suite l'update, donc valide="oui"
ici ça ne marche pas donc comment faire un test sur la valeur du checkbox
SVP aidez moi!
Afficher la suite 

Votre réponse

16 réponses

Meilleure réponse
refkaben 151 Messages postés vendredi 19 août 2005Date d'inscription 21 février 2006 Dernière intervention - 27 oct. 2005 à 14:38
3
Merci
ça fait longtemps mais je me rends compte que mon erreur etait:
Il manque le "LIMIT 1" dans ma requete.
merci!

Merci refkaben 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de refkaben
J_G 1406 Messages postés mercredi 17 août 2005Date d'inscription 28 août 2007 Dernière intervention - 18 oct. 2005 à 11:12
0
Merci
je ne vois pas de checkbox dans ton code !?!
Commenter la réponse de J_G
refkaben 151 Messages postés vendredi 19 août 2005Date d'inscription 21 février 2006 Dernière intervention - 18 oct. 2005 à 11:34
0
Merci
Ah! oui je l'ai eliminé de mon message sans se rendre compte!
Désolée!
C'est dans la boucle While
voila:
while($resultat= mysql_fetch_array($requete)) {?><tr<? echo $resultat["nentreprise"]; ?></td><td><? echo $resultat["nom"];?> ......<td></td></tr>}?>
je encore suis bloquée, donc Merci de me répondre!
Commenter la réponse de refkaben
J_G 1406 Messages postés mercredi 17 août 2005Date d'inscription 28 août 2007 Dernière intervention - 18 oct. 2005 à 11:52
0
Merci
J'avoue ne pas trop comprendre ta source...



Alors je vais te proposer la solution "classique" :



Bon, tu affiches avec ton while les entreprises avec une checkbox pour la selection "mettre-à-jour ou non"

<?php

while( mysql_fetch_array ) {

echo nentreprise; // nentreprise est t-il l'identifiant d'une entreprise ?

echo nom;

echo '';

}

?>

puis le bouton de soumission...



Comment récupérer les checkboxe cochées ?

tu remarqueras que le nom des checkboxes est un... tableau !

Donc tu récupéreras les checkboxes cochées dans le tableau $_POST['selection']

<?php

if($action=='valider' and isset('$_POST['selection']) ) {

foreach($_POST['selection'] as $nentreprise) {

echo "J'ai coché la checkbox de l'entreprise $nentreprise
";

}

}

?>



Essaye ça, et regarde si tu récupére bien les bonnes checkboxes !!!

Ensuite il suffit de construire la requète en conséquence...



Bonne chance
Commenter la réponse de J_G
refkaben 151 Messages postés vendredi 19 août 2005Date d'inscription 21 février 2006 Dernière intervention - 18 oct. 2005 à 14:06
0
Merci
merci pour votre réponse!
Mais j'ai toujours le meme probleme!
lorsque je clique sur valider rien ne se fait, la deuxième fois et lorsque les checkbox sont unchecked, si je clique sur valider l'update se produit pour toutes les entreprises.
je ne sais ou le probleme.
SVP essayez de m'aider d'avantage si vous avez le temps .
merci
Commenter la réponse de refkaben
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 18 oct. 2005 à 17:26
0
Merci
Salut,



prenons un exemple :



<form action="page.php?valider" method="post">







</form>



sur ta page "page.php"



<?php

if(isset($_GET['valider']))

{

if(isset($_POST['check']))

{

//checkbox cochée

}

}

?>

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Commenter la réponse de cs_Anthomicro
refkaben 151 Messages postés vendredi 19 août 2005Date d'inscription 21 février 2006 Dernière intervention - 19 oct. 2005 à 10:27
0
Merci
Merci Antho!
Mais ça ne marche pas aussi ta solution!
Commenter la réponse de refkaben
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 19 oct. 2005 à 18:09
0
Merci
Heu... ça vient de ton code alors, quel est ton code ?

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Commenter la réponse de cs_Anthomicro
J_G 1406 Messages postés mercredi 17 août 2005Date d'inscription 28 août 2007 Dernière intervention - 19 oct. 2005 à 18:15
0
Merci
Antho =>

Tu fais une petite erreur :

page.php?valider

donc $_GET['valider'] === '' (string vide)

donc (bool)$_GET['valider'] renvoi false ...



refkaben => L'exemple d'Antho est bon à deux caractères pret, essaye ainsi :

<form action="page.php?valider=1" method="post">







</form>



sur ta page "page.php"



<?php

if(isset($_GET['valider']))

{

if(isset($_POST['check']))

{

//checkbox cochée

}

}

?>
Commenter la réponse de J_G
J_G 1406 Messages postés mercredi 17 août 2005Date d'inscription 28 août 2007 Dernière intervention - 19 oct. 2005 à 18:18
0
Merci
Oups !!! J'ai lu trop vite : isset($_GET['valider'])

Milles excuses Antho...
Commenter la réponse de J_G
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 19 oct. 2005 à 18:44
0
Merci
héhé ^^

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Commenter la réponse de cs_Anthomicro
refkaben 151 Messages postés vendredi 19 août 2005Date d'inscription 21 février 2006 Dernière intervention - 20 oct. 2005 à 10:04
0
Merci
merci pour vos réponse, je suis encore bloquée, donc je vais vous copier mon code et comme ça vous pouvez facilement voir le problème.
Voilà:
<? include"connb.php" ?>


<? $requete mysql_query(" select * from entreprise where valide'non' ")or die("selection impossible");
?>

<tr> <td> Validation et confirmation des Comptes des entreprises Membres </td></tr>
<form name ="formul" action="validercompte.php?valider" method="post">nentreprise, nom,

----
<? echo $resultat["nentreprise"]; ?>, <? echo $resultat["nom"]; ?>, ..........,
<? } ?>
----
,

</form>
<?php
if(isset($_POST['valider']))
{
if(isset($_POST['check']))
{
$sqlmysql_query(" UPDATE entreprise set valide'oui'");}


}



?>

le probleme c'est lorsque je clique sur le bouton valider rien ne se passe, puis je coche le checkbox et je clique sur le bouton valider rien ne se passe aussi, en ce moment et au bout du deuxième clique il me fait l'update de tous les enregistrement.
SVP aidez moi, je suis débutante et je ne comprends pas le comportement de mon programme pour qu je puisse le corriger. Merci de le voir avec moi
Commenter la réponse de refkaben
J_G 1406 Messages postés mercredi 17 août 2005Date d'inscription 28 août 2007 Dernière intervention - 20 oct. 2005 à 21:42
0
Merci
Je vais te faire une confidence... :



Ton script marche très bien !

Il fait exactement ce que tu lui demande !?!



C'est à dire qu'il fonctionne un peu comme un flic :

Taper d'abord, discuter ensuite.

Alors qu'il faudrait faire l'inverse...



Je te laisse médité là dessus ;)
Commenter la réponse de J_G
refkaben 151 Messages postés vendredi 19 août 2005Date d'inscription 21 février 2006 Dernière intervention - 21 oct. 2005 à 10:02
0
Merci
Bonjour J_G , et merci pour ta réponse!
Mais mon script ne fais pas ce que je veux, en fait je veux d'abord afficher tous les enregistrement qui ont le champs "valide=non", puis je coche les enregistrement que je veux et je fais mon update et comme ça j'aurais le "valide=oui".
je ne vois pas la faute dans mon code!et j'ai pas bien compris ta réponse, svp si tu as le temps explique moi d'avantage.
Merci et a+
Commenter la réponse de refkaben
J_G 1406 Messages postés mercredi 17 août 2005Date d'inscription 28 août 2007 Dernière intervention - 21 oct. 2005 à 15:55
0
Merci
<? include"connb.php" ?>
<?php // placé avant d'afficher le résultat... c'est mieux !!!!

if(isset($_POST['valider']))

{

if(isset($_POST['check']))

{



$sqlmysql_query(" UPDATE entreprise set valide'oui'");}




}







?>


<? $requete mysql_query(" select * from entreprise where valide'non' ")or die("selection impossible");
?>

<tr> <td> Validation et confirmation des Comptes des entreprises Membres </td></tr>
<form name ="formul" action="validercompte.php?valider" method="post">nentreprise, nom,

----
<? echo $resultat["nentreprise"];
?>, <? echo $resultat["nom"];
?>, ..........,
<? } ?>
----
,

</form>
Commenter la réponse de J_G
refkaben 151 Messages postés vendredi 19 août 2005Date d'inscription 21 février 2006 Dernière intervention - 22 oct. 2005 à 15:33
0
Merci
voila j'ai fait comme tu m'a recommander, mais ça ne marche pas! c'est le meme comportemet, peut etre que le probleme n'est pas dans le code? car ça me parait correcte et je l'ai relit mille et une fois et je ne vois pas la faute.
Merci pour votre réponse déjà!
Commenter la réponse de refkaben

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.