Envoi par POST de la "value" d'un checkbox non selectionné
Bonjour à tous,
Après plusieurs recherche dans différents sites et a travers plusieurs FAQ, je n'ai pas réussi à trouver comment forcer l'envoi d'input de type checkbox lorsque ceux ci sont unchecked.
Soit la page suivante :
Code:
1 2 3 4 5
| <form action="mailto:mail@srv.com" method="post">
<input type="checkbox" name="check1" value="true" checked>gloubi<br>
<input type="checkbox" name="check2" value="true" >boulga<br>
<input type="submit" name="sendCheck" value="Test it !">
</form> |
Si j'appuie sur le bouton "Test it !", je vais envoyer un mail qui aura comme texte :
Code:
check1=true&sendCheck=Test+it+%21
Or ce que j'aimerais ce serait plutôt quelque chose du genre
Code:
check1=true&check2=false&sendCheck=Test+it+%21
J'ai essayé d'adapter un peu la page :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <script type="text/javascript">
function formPost(elements, length)
{
for(var index=0;i<length;index++)
{
if(elements[index].type=='checkbox'&&elements[index].checked)
{
elements[index].value="false";
elements[index].checked=true;
}
}
return true;
}
</script>
<form action="mailto:mail@srv.com" method="post" onsubmit="return formPost(elements, length);">
<input type="checkbox" name="check1" value="true" checked>gloubi<br>
<input type="checkbox" name="check2" value="true" >boulga<br>
<input type="submit" name="sendCheck" value="Test it !">
</form> |
Mais, forcément, ça modifie directement le statut des checkbox non sélectionnées (elles deviennent sélectionnées).
Bien entendu si je ne mets pas la ligne elements[index].checked=true; je n'ai pas ce probleme, mais je me retrouve alors avec le même cas que précedemment (valeur non prise en compte dans l'envoi).
J'aimerais donc savoir s'il est possible de paramétrer le post pour que je puisse avoir ce "&check2=false" qui me manque.
Par avance, :merci:.
Joël.
Wouahou, c'te rapidité !...
Arf, c'est ce que je craignais.
Bon, par contre avec la solution que tu as proposé, j'obtiens check%5B%5D=gloubi&sendCheck=Test+it+%21
Je n'ai toujours qu'un checkbox dans ce cas.
Si par for each tu sous entends que par déduction je sais lesquels ne sont pas selectionnés, ça ne m'interesse que moyennement.
En fait si je veux obtenir ce résultat, c'est parce que coté serveur je n'aimerais pas faire la distinction entre une requete AJAX par Rico du type
Code:
ajaxEngine.sendRequest('selectCheck','gloubi=true');
envoyée dans le onclick d'un checkbox et un POST d'un formulaire complet avec des checkbox.
Dans mon cas, lors de l'exécution de la requete AJAX, toutes les checkbox se décochent, car le serveur ne voit pas la différence. Pour lui c'est comme si on avait sélectionné qu'une checkbox et qu'on avait fait un POST classique.
Je ne sais pas si c'est très clair, mais de toutes façons, si ce n'est pas ce que tu sous entendais par for each, ce n'est pas important, c'est juste que j'ai mal compris ce que tu voulais m'expliquer.
Quoiqu'il en soit merci de cette réponse si rapide. :)
Joël.