Récupérer les checkbox cochées dans une variable

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Récupérer les checkbox cochées dans une variable

par paul-75 » 01 juin 2009, 12:34

En effet, nickel.
Merci Ryle :)

par Ryle » 01 juin 2009, 11:03

Tu as renommé les champs de ton formulaire... dès lors tu n'as plus d'élément nommé "atelier" et donc pas le droit de faire un "document.inscription.atelier[j].checked".

Sauf que comme tu ne peux pas coller de crochets dans le nom du champ en utilisant cette syntaxe, il faut utiliser le tableau "elements" de ton formulaire :
document.inscription.elements['atelier[]'][j].checked

par paul-75 » 01 juin 2009, 10:04

Tout d'abord un grand merci à vous deux.

Il y encore un petit soucis par contre...

J'ai omis de vous dire, pour simplifier les choses, qu'il y avait un javascript derrière :

Code : Tout sélectionner

<input type="checkbox" name="atelier[]" id="atelier1" value="atelier1" onclick="CalculTarif()" /> <label for="atelier2">atelier 2</label> <input type="checkbox" name="atelier[]" id="atelier2" value="atelier2" onclick="CalculTarif()" /> <label for="atelier3">atelier 3</label> <input type="checkbox" name="atelier[]" id="atelier3" value="atelier3" onclick="CalculTarif()" /> <label for="atelier4">atelier 4</label> <input type="checkbox" name="atelier[]" id="atelier4" value="atelier4" onclick="CalculTarif()" />
Avec la fonction :

Code : Tout sélectionner

function CalculTarif() { // Tarifs adhérents (0,1,2,3,4 ateliers) o=[0,15,30,45,50]; // Tarif non adhérents (0,1,2,3,4 ateliers) n=[0,30,60,90,100]; // // - Calcul du nombre d'Ateliers => i // var i=0; for(j=0; j<4; j++) { if(document.inscription.atelier[j].checked) {i++;} } // //- récupération du Montant correspondant // if (document.getElementById('oui').checked == true) { // cas adhérent => utilisation du tableau o document.getElementById('montant').value = o[i]; } else { // cas non adhérent => utilisation du tableau n document.getElementById('montant').value = n[i]; } } </script>
Hélas, cette fonction ne marche plus à présent !

Pourriez-vous me trouver la correction SVP ?

Encore merci d'avance. :)

par thehawk » 01 juin 2009, 08:57

ensuite pour avoir qu'une seul variable en 'string' , il te suffira d'utiliser la fonction implode()

ce qui te donnera quelque chose comme :

$variable = implode( " ", $_POST['atelier'] );


Bonne journée Hawk

par stopher » 01 juin 2009, 08:11

Salut ,

Change le nom de tes checkBox comme ceci :

Code : Tout sélectionner

<input type="checkbox" name="atelier[]" id="atelier1" value="atelier1"/> <input type="checkbox" name="atelier[]" id="atelier2" value="atelier2" /> <input type="checkbox" name="atelier[]" id="atelier3" value="atelier3" /> <input type="checkbox" name="atelier[]" id="atelier4" value="atelier4" />
Et donner une valeur à chaque Cb. sinon ils te retournent un booleen .

Ainsi , la variable $_POST['atelier'] contiendra un tableau avec les valeurs des checkbox cochés .

Ch.

Récupérer les checkbox cochées dans une variable

par paul-75 » 01 juin 2009, 00:18

Bonjour à tous,

Je suis débutant en PHP et je bute sur le problème suivant.

J'ai un formulaire avec 4 checkbox :
<input type="checkbox" name="atelier" id="atelier1" />
<label for="atelier2">atelier 2</label>
<input type="checkbox" name="atelier" id="atelier2" />
<label for="atelier3">atelier 3</label>
<input type="checkbox" name="atelier" id="atelier3" />
<label for="atelier4">atelier 4</label>
<input type="checkbox" name="atelier" id="atelier4" />
Plusieurs checkbox peuvent être cochées en même temps.

Je souhaiterais récupérer dans une variable de type string la concaténation des id des checkbox cochées, par exemple : $variable = "atelier1 atelier4"
dans le cas où ce sont les checkbox des ateliers 1 et 4 qui sont cochées.

Qqun pourrait-il m'aider SVP ?

MERCI :)

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]