Posez votre question Signaler

Compter les coches

RiKé 45Messages postés 19 juillet 2001Date d'inscription - Dernière réponse le 7 nov. 2001 à 17:44
Bonjour @ tous

Je cherche à créer un compteur qui me dise combien de checkbox sont cochées en temps réel sur une page .asp
Un JavaScript sans doute ???
Lire la suite 

Compter les coches »

12 réponses
Réponse
+0
moins plus
Effectivement, Javascript :
Declaration de tes checkbox :
<form name="mon_form" ...>
<input type="checkbox" name="check1">
<input type="checkbox" name="check2">
...
</form>

Pour récupérer le compte, tu fais appel à la fonction suivante :

function compte() {
var compte ;
for (i=1 ; i<=n ; i++) {
if (eval("document.mon_form.check"+i+".checked")) {
compte++;
}
}
return compte ;
}

Cela devrait marcher.
Dis moi quand même si cela marche ou pas.

Stéphanie
RiKé - 7 nov. 2001 à 10:33
Merci de ton aide Stéphanie...
Ca marche mieux.... mais au lieu d'afficher le compte, il
RiKé - 7 nov. 2001 à 10:35
Merci de ton aide Stéphanie...
Ca marche mieux.... mais au lieu d'afficher le compte, il affiche NaN

J'utilise la propriété OnClick="JavaScript:compte();" pour appeler la fonction compte()
slopera - 7 nov. 2001 à 11:11
Dans quoi tu fais le onclick=compte() ?
Développe moi un peu ton code pour voir...
Ajouter un commentaire
Réponse
+0
moins plus
Voici le code de mon formulaire...
Les checkbox sont créées en dynamique

<form method="post" action="plan_query_societe.asp" name="nomenc">

<%Dim x
x=0
Do while not Rs_societe.EOF
x=x+1%>

<input type="checkbox" onclick="javascript:compte();" name="check<%=x%>" value="<%=Rs_societe("cle1_cle2")%>"><%=Rs_societe("societe")%><BR>

<%
Rs_societe.MoveNext
Loop%>

.../...
</form>

et voici la fonction

<script language="JavaScript">
function compte() {
var compte ;
for (i=1 ; i<=355 ; i++) {
if (eval("document.nomenc.check"+i+".checked")) {
compte++;
}
}
alert("\n\nVous avez sélectionné " + compte + " sociétés !");
}
</script>


Je n'y connais pas grand chose en JavaScript... la variable compte est-elle bien déclarée?


Merci beaucoup pour ton aide...
slopera - 7 nov. 2001 à 12:01
Le variable compte ... n'est pas initialisée !! Désolée ...
Met :
var compte = 0 ;

Dis moi si ça roule comme ça.
Stéphanie
Ajouter un commentaire
Réponse
+0
moins plus
Ca marche très bien, merci beaucoup.
Cependant vu le nombre de checkboxes de ma pages (350), le script est un peu long à tout balayer....
J'va réfléchir à autre chose...

Merci encore pour ton coup de pouce...
J'espère un jour pouvoir à mon tour t'aider.

@+
Eric
slopera - 7 nov. 2001 à 13:52
Pt-être en mettant une variable globale Javascript :
<script>
var mon_compte = 0 ;
</script>
Je crois que par défaut aucune société n'est choisie, donc tu l'initialise à 0 sinon, tu comptes le nombre de société cliquées avec la fonction compte().

Puis, quand tu cliques sur un checkbox, tu vérifies si c'était cliqué : alors, tu enlève 1 à ta variable, sinon, tu ajoutes 1 :

<input type=checkbox name=check2 onclick="maj('click2')">...

<script>
function maj(name) {
if (document.mon_form.name.checked) {
mon_compte++;
alert ("vous avez choisi" + mon_compte + "societe");
}
else {
mon_compte--;
alert ("vous avez choisi" + mon_compte + "societe");
}
}
</script>

ou alors, tu ne fais pas appel à ta fonction compte() à chaque fois mais seulement quand tu valides :

<input type=submit name="valider" onclick="compte()">

Si tu t'y connais en XMLDOM, tu peux peut-être m'aider ...

Stéphanie
slopera - 7 nov. 2001 à 14:03
OUPS
il fallait voir bien sur :
... onclick="maj('check2')" ...
Ajouter un commentaire
Réponse
+0
moins plus
Vraiment merci, ca tourne beaucoup plus vite, sauf que le décochage compte comme un cochage, c-a-d, que je coche ou décoche, mon_compte=mon_compte+1

J'ai modifié un peu le script, mais sans résultat...!


function maj(name) {
if (document.nomenc.name.checked = true) {
mon_compte++;
alert ("vous avez choisi " + mon_compte + " societes");
}
if (document.nomenc.name.checked = false) {
mon_compte--;
alert ("vous avez choisi " + mon_compte + " societes");
}
}
slopera - 7 nov. 2001 à 16:45
As-tu bien mis dans ton input :
<input type="checkbox"
onclick="javascript:maj('check<%=x%>)"
name="check<%=x%>"
value="<%=Rs_societe("cle1_cle2")%>">
...

Si tu as laissé maj('check2'), c'est normal que cela ne marche pas : le paramêtre est lui aussi dynamique : tu ne vérifies ainsi que la case que tu viens de cocher ou décocher.

J'espère que ce coup-ci, cela va marcher ...
Ajouter un commentaire
Réponse
+0
moins plus
Oui, oui, tout est paramétré dynamiquement...
Vu la vitesse d'execution, il vérifie bien que la checkbox 'active', le probleme est qu'il ne cherche pas à savoir si 'cochée' ou 'non cochée', dans les deux cas, il ne voit que le clic dans la checkbox et incremente 'mon_compte' de +1 meme si j'ai décoché.

function maj(name) {
if (document.nomenc.name.checked = true) {
mon_compte++;
alert ("vous avez choisi " + mon_compte + " societes");
}
else {
mon_compte--;
alert ("Choisi " + mon_compte + " societes");
}
}



<input type="checkbox" onclick="maj('check<%=x%>');" name="check<%=x%>" value=...../....



Malheureusement je ne connais pas le XMLDOM (qu'est-ce?) mais qui sait ? Ce sera un plaisir de te dépanner un jour.
Ajouter un commentaire
Ce document intitulé « Compter les coches » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook