[RESOLU] Input checkbox checked : no action !

Eléphant du PHP | 256 Messages

02 juil. 2014, 15:30

Bonjour,
Dans un formulaire j'ai une liste de membres auxquels on choisit d'envoyer un mail ... ou pas.
Je génère donc (en php) une série de checkboxes qu'on peut cocher ... ou pas

Code : Tout sélectionner

<form method='post' action='SendMail.php'> <input type = 'checkbox' name = 'MailList[]'
Je récupère ensuite dans SendMail.php via

Code : Tout sélectionner

foreach($_POST['MailList'] as $check) ...
La particularité est que certains membres ne peuvent jamais recevoir de mail, et d'autres (administrateurs du site) doivent toujours le recevoir.
Selon le cas j'ajoute donc à l'input

Code : Tout sélectionner

disabled='disabled' title='Ne souhaite pas recevoir de mail' disabled='disabled' checked='checked' title='Toujours mail'
Le problème est que ces derniers, bien que checked par défaut, ne sont pas activés.
Comment faire pour que le module SendMail.php reçoive une valeur pour tous les checkboxes checked même ceux qui sont disabled ?
Merci d'avance pour votre aide.

Mammouth du PHP | 1339 Messages

02 juil. 2014, 18:26

Utilise readonly="readonly" au lieu de disabled="disabled".
Comme son nom l'indique, disabled le rend invisible alors que readonly empeche qu'on le modifie.
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

02 juil. 2014, 18:31

Bonjour,

Juste une astuce pour palier au problème : Utiliser un code javascript sur click qui remet rejeter la modification du check:
<input type="checkbox" name="MailList[]" checked="checked" title="Toujours mail" onclick="return false" />
En effet, l'attribut DISABLED désactive le champ et empêche l'envoi de sa valeur dans le postage du formulaire.
En principe, tu dois utiliser l'attribut READONLY qui verrouille la modification de la valeur d'un champ et permet l'envoi de sa valeur dans le postage du formulaire. Mais READONLY ne fonctionne pas pour le chekbox.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 256 Messages

02 juil. 2014, 18:44

Merci beaucoup sadeq, ça fonctionne !