Cases à cocher et PHP
10 messages
• Page 1 sur 1
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
- masseur
- WRInaute discret

- Messages: 111
- Inscription: 27 Nov 2006
Cases à cocher et PHP
Bonjour.
Je possède un formulaire qui affiche des checkbox qui sont cochés suivant la valeur qu'il y a dans la BDD.
Jusque la pas de problème.
J'aimerai actualiser ma BDD suivant que la case soit coché ou non.
Si la case est cochée j'arrive bien à actualiser ma BDD car je récupère la valeur des id cochées dans ma page de traitement en faisant ceci.
Cependant si je décoche une case qui était cochée dans ma page de traitement je n'ai aucun moyen de le savoir car aucune valeur ne sera renvoyé.
VOus avez des idées?
Existe t'il des boutons qui renvoient une valeur quand le bouton est coché et une autre quand il n'est pas coché?
COmme cela je ferais passer l'id en hidden est le tour serait joué.
Merci d'avance
Je possède un formulaire qui affiche des checkbox qui sont cochés suivant la valeur qu'il y a dans la BDD.
Jusque la pas de problème.
- Code: Tout sélectionner
<input name='select_exploitation[]' type='checkbox' value='$id' $etat/>
J'aimerai actualiser ma BDD suivant que la case soit coché ou non.
Si la case est cochée j'arrive bien à actualiser ma BDD car je récupère la valeur des id cochées dans ma page de traitement en faisant ceci.
- Code: Tout sélectionner
$tableau_select_exploitation = $_POST["select_exploitation"] ;
foreach($tableau_select_exploitation as $val_exploitation) {
...
Cependant si je décoche une case qui était cochée dans ma page de traitement je n'ai aucun moyen de le savoir car aucune valeur ne sera renvoyé.
VOus avez des idées?
Existe t'il des boutons qui renvoient une valeur quand le bouton est coché et une autre quand il n'est pas coché?
COmme cela je ferais passer l'id en hidden est le tour serait joué.
Merci d'avance
- masseur
- WRInaute discret

- Messages: 111
- Inscription: 27 Nov 2006
biscuit a écrit:Hello,
Tu peux utiliser array_keys() pour savoir quelle cases sont cochées...
Le problème est plutot pour savoir celle qui ne sont pas cochées.
Perso je supprime tout puis revalide toutes les cases cochées.
Dans mon cas cela ne peuxpas être fait par rapport au fonctionnement de l'application.
Merci quand même.
- ramsesservices
- WRInaute discret

- Messages: 84
- Inscription: 5 Fév 2007
Lors de la validation tu refais la requête vers la db afin d'avoir les anciennes valeurs et tu compares.
Ou encore mettre un champ html "hidden" devant chaque checkbox avec l'info "cochée" ou non.
Ou encore mettre un champ html "hidden" devant chaque checkbox avec l'info "cochée" ou non.
-

UsagiYojimbo - WRInaute accro

- Messages: 8303
- Inscription: 23 Nov 2005
L'autre solution consiste a traier les cases à cocher en dehors de ton foreach, et de tester si le $_POST['tonchamp'] existe ou non (via la fonction phph isset).
Si uen valeur existe, alors la case est cochée, sinon non.
Si uen valeur existe, alors la case est cochée, sinon non.
-

Bh@Mp0 - WRInaute discret

- Messages: 245
- Inscription: 18 Jan 2005
Re: Cases à cocher et PHP
Bon, c'est assez facile à contourner, et ça vient en fait de ta façon de gérer le formulaire :
Ainsi tu as 1 quand c'est coché et 0 (null ?) sinon.
- Code: Tout sélectionner
<input name='select_exploitation_$id' type='checkbox' value='1' $etat/>
Ainsi tu as 1 quand c'est coché et 0 (null ?) sinon.
- Code: Tout sélectionner
foreach($_POST as $key => $value) {
if(substr_compare("select_exploitation_", $key, 0) == 0) {
// si $value = 1 => coché | sinon => pas coché
}
}
- ramsesservices
- WRInaute discret

- Messages: 84
- Inscription: 5 Fév 2007
Re: Cases à cocher et PHP
Bh@Mp0 a écrit:Bon, c'est assez facile à contourner, et ça vient en fait de ta façon de gérer le formulaire :
- Code: Tout sélectionner
<input name='select_exploitation_$id' type='checkbox' value='1' $etat/>
Ainsi tu as 1 quand c'est coché et 0 (null ?) sinon.
- Code: Tout sélectionner
foreach($_POST as $key => $value) {
if(substr_compare("select_exploitation_", $key, 0) == 0) {
// si $value = 1 => coché | sinon => pas coché
}
}
Je ne suis pas certain de comprendre la technique que tu utilises ci-dessus.
Quand tu fais ton foreach, la variable $_POST ne contient que les cases qui sont nouvellement cochées. On peut donc en déduire que les autres sont décochées naturellement mais comment savoir si elles l'étaient avant le submit du formulaire ?
-

Bh@Mp0 - WRInaute discret

- Messages: 245
- Inscription: 18 Jan 2005
Re: Cases à cocher et PHP
ramsesservices a écrit:Bh@Mp0 a écrit:Bon, c'est assez facile à contourner, et ça vient en fait de ta façon de gérer le formulaire :
- Code: Tout sélectionner
<input name='select_exploitation_$id' type='checkbox' value='1' $etat/>
Ainsi tu as 1 quand c'est coché et 0 (null ?) sinon.
- Code: Tout sélectionner
foreach($_POST as $key => $value) {
if(substr_compare("select_exploitation_", $key, 0) == 0) {
// si $value = 1 => coché | sinon => pas coché
}
}
Je ne suis pas certain de comprendre la technique que tu utilises ci-dessus.
Quand tu fais ton foreach, la variable $_POST ne contient que les cases qui sont nouvellement cochées. On peut donc en déduire que les autres sont décochées naturellement mais comment savoir si elles l'étaient avant le submit du formulaire ?
Ah ben j'ai pas dit que ça devait le faire
Une simple petite modif du code et c'est ok ...
Au lieu d'avoir
- Code: Tout sélectionner
<input name='select_exploitation_$id' type='checkbox' value='1' $etat/>
- Code: Tout sélectionner
<input name='select_exploitation_$valeurAvantInput_$id' type='checkbox' value='1' $etat/>
Puis dans la boucle, il suffit de récupérer cette "valeurAvantInput" pour savoir si c'était décoché avant ou pas, et ensuite la valeur actuelle pour savoir l'état final.
Enjoy!
10 messages
• Page 1 sur 1
Formation recommandée sur ce thème :
Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Open Office 2 : insérer des cases à cocher (et les cocher !)
- Update avec des cases à cocher (php / sql)
- XHTML, HTML et cases à cocher
- DREAMWEAVER Probleme cases à cocher dynamique
- case à cocher
- Récupérer les id des 5 premières cases cochées
- Condition case à cocher dans formulaire
- Case à cocher + update instantané des infos
- [Réglé] Cocher une case de formulaire avec le clavier
- A quel moment cocher "report de paiement" ...
- Google indexe parfois les formulaires (balise - 14-04-2008
- Les bonnes pratiques pour son site web : le memento - 22-02-2007
- Voici comment désactiver les suggestions Google (Google Suggest) - 31-08-2008
- Moteur de recherche de flux RSS / Atom - 02-05-2006
- Comment optimiser la proéminence des mots-clés - 13-10-2008
- Google ajoute la Navigation par nom dans sa Toolbar - 15-07-2004
- La recherche d'annonces immobilières dans Google Maps - 02-11-2009
- Le positionnement d'annonces AdSense : explications - 26-01-2007
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités



