CheckBox avec valeurs differentes [Résolu]

Signaler
Messages postés
11
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
10 mars 2009
-
Messages postés
11
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
10 mars 2009
-
Bonjour,

Voilà, j'ai un gros soucis avec les CheckBox. En effet, je souhaite récuperer la valeur du checkbox afin de mettre cette donnée dans une table SQL.
Le problème est que je ne parviens pas à faire comprendre au programme que si je ne coche rien, je souhaite une valeur "0" et si je coche la case, une valeur "1".

Voici mon bout de script si quelqu'un peut m'aider:

- Dans mon Body, j'ai :

<form action="enquete2_endtest.asp" method="post" onsubmit="return validation();" name="tata">
    <table style="background-color:#A0DDFF;border-right:outset 2px green;border-bottom:outset 2px green;" bordecellspacing=0 id=freedom width="100%" >
     <tr>
      <td  colspan="6" style="background-image:url(../../pics/neonbacklightbottom.gif);height:4px;"></td>
     </tr>
     <tr>
      <td class=planningitem></td>
      <td class=planningitem>Excellente</td>      
     </tr> 
     <tr>
      <td colspan="6"  style="background-image:url(../../pics/neonbacklightbottom.gif);height:4px;"></td>
     </tr>
     <tr>
      <td class=planningitem>C’est un service qui devrait être facilitateur auprès des équipes techniques en charge du traitement des demandes de moyens informatiques</td>
      <td class=planningitem></td>      
     </tr> 
     <tr>
      <td colspan="6"  style="background-image:url(../../pics/neonbacklightbottom.gif);height:4px;"></td>
     </tr>
     <tr>
      <td class=planningitem>Ce service devrait être force de proposition/ conseil sur les nouveautés techniques à disposition</td>
      <td class=planningitem></td>      
     </tr>

Pour résumer, lorsque je clique sur Suivant, je vais vers une autre page qui me recupere mes valeurs precedemment cocher.

- Dans mon Head j'ai :

function validation(){ 
  ifquest2=document.getElementsByName("quest2")
  ifquest3=document.getElementsByName("quest3")
  
  var cpt=0;
   if (ifquest2[0].checked){
    cpt++;
    ifquest2[0].value=5    
   }
    else { 
    ifquest2[0].value=0
    }
  
   if (ifquest3[0].checked){
    cpt++;
    ifquest3[0].value=6
   }
   else { 
   ifquest3[0].value=0
   }  
  }

J'ai donc deux problèmes:
Le premier est que si je ne coche qu'un bouton sur les 2, j'ai une erreur.
Le deuxième est que meme si je coches tout et que mon script se deroule bien, dans ma table SQL je n'ai pour valeur que des "1" alors que je souhaiterais des "5","6" ou "0"

Voilà! Si je ne suis pas clair, il ne faut pas hesiter...

En vous remerciant par avance,

Seb

6 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
tu mets "réponse accpetée", mais pas sûr
que cela soit résolu ! ( c'est ce que ça vaut dire )

pourquoi : 
ifquest2=document.getElementsByName("quest2")
   if (ifquest2[0].checked){...

tu pourrais faire if ( document.tata.quest2.checked ) cpt++;

et comme tu changes le value,
ifquest2[0].value=5    tu recevras quest2=5 dans ce cas.

          Bul [mon Site] [M'écrire]         
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

Bonjour,

1. Sauf erreur de ma part, le browser ne transmet au serveur que les cases qui sont cochées. Donc t'auras beau changer la valeur des checkbox, le serveur ne recevra que celles ayant été cochées. Il te suffit de les initialisés avec les bonnes valeurs au départ.
2. tu fais ceci : onsubmit="return validation();"
Ce serait bien que la fonction validation() retourne quelque chose (true ou false).
3. Toujours sauf erreur de ma part, en ASP pour récupérer la valeur d'un form c'est : Request.Form("mavairable")
Donc :
quest2=(Request.item("quest2").Count>0)?Request.item("quest2").item(1):Session("quest2");
devient :
quest2=(Request.Form("quest2").Count>0)?Request.Form("quest2").item(1):Session("quest2")
Sans ";" !

Nickadele
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
bonjour,

ce qu'on transmet vers le script sur le serveur  ( asp donc pour toi )
c'est le value des éléments du formulaire qui ont un name

donc tu vas recevoir quest2=1  quest3=1  ....

          Bul [mon Site] [M'écrire]         
Messages postés
11
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
10 mars 2009

En fait mon problème, et que je ne parviens pas à recuperer les valeurs de cette page dans une autre page qui doit inserer mes données dans SQL.
Voici ce que j'utilise:

quest2=(Request.item("quest2").Count>0)?Request.item("quest2").item(1):Session("quest2");
Session("quest2") = quest2
quest3=(Request.item("quest3").Count>0)?Request.item("quest3").item(1):Session("quest3");
Session("quest3") = quest3

En effet, qu'en je test les valeurs via un Response.write, j'obtiens 0 alors que je devrais avoir des valeurs.

As-tu une solution pour recuperer ces fameuses données? Car j'ai supprimer les values. Je test le checkbox et je garde son boolean (true ou false).

En tout cas, merci pour ta reponse.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>le browser ne transmet au serveur que les cases qui sont cochées.
tu as parfaitement raison nickadele

>>le serveur ne recevra que celles ayant été cochées.
>>Il te suffit de les initialiser avec les bonnes valeurs au départ
+1

          Bul [mon Site] [M'écrire]         
Messages postés
11
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
10 mars 2009

Ok, merci beaucoup! Je crois avoir compris et mis en execution vos conseils! A premiere vue ca marche!
Je reviens vers vous pour valider la reponse si tout est reellement OK.
En tout cas, mille merci!