Checkbox Administration Wordpress
Résolu
Shuta
Messages postés
210
Date d'inscription
Statut
Membre
Dernière intervention
-
Shuta Messages postés 210 Date d'inscription Statut Membre Dernière intervention -
Shuta Messages postés 210 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Alors voilà, j'essaie de faire une checkbox sur une page personnelle en administration.
Seulement avec tous les tutos que j'ai croisé (sur le peu que je croises) impossible de la faire fonctionner correctement :(
Je m'explique :
Voici la checkbox en question ! Alors celle ci marche mais que dans le sens "On" C'est a dire que si elle n'est pas cochée de base, je viens pour la cocher, j'enregistre et elle se coche correctement. Le soucis est que... Elle ne se décoche plus !
Je vais voir sur la base de donnée, la valeur est bien affiché à 1. Mais impossible de décocher cette checkbox...
En ce qui concerne le traitement de 'options[]' voici le code, il m'est utile pour tout le reste du template :
Merci de bien vouloir m'aider :'( Ca fait 5h que je bloque sur ça, ça devient pesant...
Bonne soirée.
Cordialement
Alors voilà, j'essaie de faire une checkbox sur une page personnelle en administration.
Seulement avec tous les tutos que j'ai croisé (sur le peu que je croises) impossible de la faire fonctionner correctement :(
Je m'explique :
<input type="checkbox" id="check01" name="options[check01]" value="1" <?php checked( '1', get_option('check01') ); ?> />
Voici la checkbox en question ! Alors celle ci marche mais que dans le sens "On" C'est a dire que si elle n'est pas cochée de base, je viens pour la cocher, j'enregistre et elle se coche correctement. Le soucis est que... Elle ne se décoche plus !
Je vais voir sur la base de donnée, la valeur est bien affiché à 1. Mais impossible de décocher cette checkbox...
En ce qui concerne le traitement de 'options[]' voici le code, il m'est utile pour tout le reste du template :
foreach($_POST['options'] as $name => $value){ if(empty($value)){ delete_option($name); } else { update_option($name, $value); } }
Merci de bien vouloir m'aider :'( Ca fait 5h que je bloque sur ça, ça devient pesant...
Bonne soirée.
Cordialement
A voir également:
- Checkbox wordpress
- Wordpress download - Télécharger - Blog & CMS
- Wordpress page blanche ✓ - Forum MacOS
- Vba checkbox value ✓ - Forum Excel
- Supprimer site wordpress - Astuces et Solutions
- Ovh site en construction wordpress - Forum Wordpress
1 réponse
Salut,
As tu vérifié le contenu de la variable $_POST['option'] lorsque la checkbox est décochée ?
Le paramètre POST correspondant à la checkbox n'est pas envoyée si celle-ci n'est pas cochée.
Pour vérifier qu'une checkbox n'est pas cochée, il faut donc vérifier l'existence du paramètre POST correspondant via par exemple la fonction isset().
Bonne journée,
As tu vérifié le contenu de la variable $_POST['option'] lorsque la checkbox est décochée ?
Le paramètre POST correspondant à la checkbox n'est pas envoyée si celle-ci n'est pas cochée.
Pour vérifier qu'une checkbox n'est pas cochée, il faut donc vérifier l'existence du paramètre POST correspondant via par exemple la fonction isset().
Bonne journée,
Je ne suis pas très développé en php, pourriez vous m'aider juste à développer la vérification de la variable =o
D'ailleurs, le name 'options[]' est utilisé pour d'autres champs aussi.
je devrais le changer pour la checkbox ?
Bonne journée !
Un exemple très simple :
En fait j'ai essayé votre méthode. Tout se passe très bien je dois avouer, mais... Si j'actualise la page (sans sauvegarder D: ) Eh bien il réinitialise tout à 0...
Voici le code que j'ai fait assemblé. J'essaie plusieurs méthodes dans celle ci, mais c'est celle qui me semble la plus proche... Mais l'actualisation fausse tout et vire le 1 de la base de donnée.
Merci de votre aide !
Il faut donc vérifier que le formulaire soit envoyé avant le faire le test sur le paramètre $_POST['options']['check01'].
Pour cela, tu peux par exemple vérifier l'existence du paramètre POST correspondant à ton bouton submit, ce dernier sera toujours définie lorsque le formulaire est envoyé.
Par exemple :
J'ai modifié le code ainsi :
C'est le seul moyen qu'il marche correctement D:
Enfin merci beaucoup pour l'aide =3 Je met la page en résolu !