Checkbox et update

Résolu
refkaben Messages postés 151 Date d'inscription vendredi 19 août 2005 Statut Membre Dernière intervention 21 février 2006 - 18 oct. 2005 à 10:56
refkaben Messages postés 151 Date d'inscription vendredi 19 août 2005 Statut Membre Dernière intervention 21 février 2006 - 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!

16 réponses

refkaben Messages postés 151 Date d'inscription vendredi 19 août 2005 Statut Membre Dernière intervention 21 février 2006
27 oct. 2005 à 14:38
ça fait longtemps mais je me rends compte que mon erreur etait:
Il manque le "LIMIT 1" dans ma requete.
merci!
3
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
18 oct. 2005 à 11:12
je ne vois pas de checkbox dans ton code !?!
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
18 oct. 2005 à 11:52
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
0
refkaben Messages postés 151 Date d'inscription vendredi 19 août 2005 Statut Membre Dernière intervention 21 février 2006
18 oct. 2005 à 14:06
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
0

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

Posez votre question
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
18 oct. 2005 à 17:26
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>
0
refkaben Messages postés 151 Date d'inscription vendredi 19 août 2005 Statut Membre Dernière intervention 21 février 2006
19 oct. 2005 à 10:27
Merci Antho!
Mais ça ne marche pas aussi ta solution!
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
19 oct. 2005 à 18:09
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>
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
19 oct. 2005 à 18:15
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

}

}

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

Milles excuses Antho...
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
19 oct. 2005 à 18:44
héhé ^^

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
0
refkaben Messages postés 151 Date d'inscription vendredi 19 août 2005 Statut Membre Dernière intervention 21 février 2006
20 oct. 2005 à 10:04
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
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
20 oct. 2005 à 21:42
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 ;)
0
refkaben Messages postés 151 Date d'inscription vendredi 19 août 2005 Statut Membre Dernière intervention 21 février 2006
21 oct. 2005 à 10:02
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+
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
21 oct. 2005 à 15:55
<? 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>
0
refkaben Messages postés 151 Date d'inscription vendredi 19 août 2005 Statut Membre Dernière intervention 21 février 2006
22 oct. 2005 à 15:33
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à!
0
refkaben Messages postés 151 Date d'inscription vendredi 19 août 2005 Statut Membre Dernière intervention 21 février 2006
18 oct. 2005 à 11:34
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!
-1
Rejoignez-nous