Check out the LimeSurvey source code on GitHub!

Attributs et Somme des champs

More
5 years 9 months ago - 5 years 9 months ago #60463 by Chafish
Bonjour,

Je cherche a faire la somme de plusieurs ligne.
J'ai bien réussi à récupéré mes champs pré-rempli via les attributs, Mais je cherche a faire la somme des champs pour l'afficher dans le dernier champs.
Là j'obtiens un chiffre mais bien plus grand que la somme.
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
document.getElementById("answer31484X45X9931_SQ001").value = '{TOKEN:ATTRIBUTE_1}'
document.getElementById("answer31484X45X9932_SQ001").value = '{TOKEN:ATTRIBUTE_2}'
document.getElementById("answer31484X45X9933_SQ001").value = '{TOKEN:ATTRIBUTE_3}'
document.getElementById("answer31484X45X9934_SQ001").value = '{TOKEN:ATTRIBUTE_4}'
document.getElementById("answer31484X45X9935_SQ001").value = '{TOKEN:ATTRIBUTE_5}'
document.getElementById("answer31484X45X9936_SQ001").value = ("answer31484X45X9931_SQ001").value+("answer31484X45X9932_SQ001").value
});
</script>

le type de ma question est "tableau (texte)" en numérique uniquement. Et je dois prendre ce type là car j'ai un tableau de 3x5 avec que des valeurs numériques.
Last Edit: 5 years 9 months ago by Chafish.

Please Log in to join the conversation.

More
5 years 9 months ago #60469 by Chafish
Je vais tenter de clarifier, comment puis je reprendre les éléments 1_SQ001.value, 2_SQ001.value dans mon 5_Sq001.value.

quel syntaxe prendre pour récuperer les chiffres et en faire la somme?
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
document.getElementById("answer31484X45X9931_SQ001").value = '{TOKEN:ATTRIBUTE_1}'
document.getElementById("answer31484X45X9932_SQ001").value = '{TOKEN:ATTRIBUTE_2}'
document.getElementById("answer31484X45X9933_SQ001").value = '{TOKEN:ATTRIBUTE_3}'
document.getElementById("answer31484X45X9934_SQ001").value = '{TOKEN:ATTRIBUTE_4}'
document.getElementById("answer31484X45X9935_SQ001").value = ("answer31484X45X9931_SQ001").val()
});
</script>

Please Log in to join the conversation.

More
5 years 9 months ago #60471 by DenisChenu
Salut,

C'est jamais très évidents les calculs en js.

Pour simplifier ici , test en utilisant jquery, cela simplifi l'écriture et traite les données plus facilement.
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
var attr1 = '{TOKEN:ATTRIBUTE_1}';
var attr2 = '{TOKEN:ATTRIBUTE_2}';
var attr3 = '{TOKEN:ATTRIBUTE_3}';
var attr4 = '{TOKEN:ATTRIBUTE_4}';
 
$("#answer31484X45X9931_SQ001").val('{TOKEN:ATTRIBUTE_1}');
$("#answer31484X45X9932_SQ001").val('{TOKEN:ATTRIBUTE_1}');
$("#answer31484X45X9933_SQ001").val('{TOKEN:ATTRIBUTE_3}');
$("#answer31484X45X9934_SQ001").val('{TOKEN:ATTRIBUTE_4}');
 
var sommequejeveux = 0;
if (attr1.lenght!=0){sommequejeveux += parseFloat(attr1); }
if (attr2.lenght!=0){sommequejeveux += parseFloat(attr2); }
if (attr3.lenght!=0){sommequejeveux += parseFloat(attr3); }
if (attr4.lenght!=0){sommequejeveux += parseFloat(attr4); }
 
$("#answer31484X45X9935_SQ001").val(sommequejeveux);
</script>

Sinon, c'est dans un tableau, c'est pour ca que tu n'utilise pas la somme automatique de LS ?

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand (or search sondages pro).

Please Log in to join the conversation.

More
5 years 9 months ago #60473 by Chafish
Oui c'est dans un tableau, on peux faire une somme auto? j'ai pas vu l'option.

Je teste ton code.

Please Log in to join the conversation.

More
5 years 9 months ago - 5 years 9 months ago #60474 by Chafish
Alors,

Avec ma version du code je récupérais les attributs, par contre là j'ai rien ni attribut, ni somme :/

je vois pas ou ça peut clocher, il faut vraiment des ; partout ?
car dans mon code ça marchait sans ;

en tout cas merci déja pour la technique, il doit pas rester grand chose pour que ça fonctionne, sans doute un problème de syntaxe.

j'ai essayé en mettant de ' à la place des " dans
$("#answer31484X45X9931_SQ001")
sans succès :/

faut quelque chose de spécial pour que le jquery marche?
Last Edit: 5 years 9 months ago by Chafish.

Please Log in to join the conversation.

More
5 years 9 months ago #60475 by DenisChenu
Pas dans un tableau, juste en multi numérique :) (faut bloquer sur un minimum, par exemple 0)

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand (or search sondages pro).

Please Log in to join the conversation.

More
5 years 9 months ago #60476 by Chafish
Arf, oui et là je suis obligé d'avoir un tableau pour ce questionnaire.

il faut un paramètre spécifique pour que jquery marche? car là avec ton code j'ai aucun résultats.

Please Log in to join the conversation.

More
5 years 9 months ago #60477 by DenisChenu
Ah MZut ..

Tu as un lien pour vérifier ou cloche le code javascript ? ( Je vérifie jamais mes scripts js, sauf quand je les mets en ligne :))

N'hésite pas à utiliser firebug pour débuguer du code js.

Essaye en entourant par " les attributs pitete. Sinon, c'est parseInt et parseFloat pour faire des calculs .

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand (or search sondages pro).

Please Log in to join the conversation.

More
5 years 9 months ago - 5 years 9 months ago #60482 by Chafish
Voilà un lien et un code pour tester.
c'est la première question

edit : suppr des liens :D

je regarde ce qu'est firebug :D et comment ça fonctionne !
Last Edit: 5 years 9 months ago by Chafish.

Please Log in to join the conversation.

More
5 years 9 months ago #60483 by Chafish
En fait ça à l'air de bien récuperer les valeurs mais ça ne les affiche pas dans le tableau. enfin c'est ce que j'ai cru voir en inspectant la source du code.

Please Log in to join the conversation.

More
5 years 9 months ago #60486 by DenisChenu
Nan,

C'est un problème de fermeture de { semble t'il. C'est de ma faute, j'ai oublié de fermer dans le code.
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
var attr1 = '{TOKEN:ATTRIBUTE_1}';
var attr2 = '{TOKEN:ATTRIBUTE_2}';
var attr3 = '{TOKEN:ATTRIBUTE_3}';
var attr4 = '{TOKEN:ATTRIBUTE_4}';
 
$("#answer31484X45X9931_SQ001").val('{TOKEN:ATTRIBUTE_1}');
$("#answer31484X45X9932_SQ001").val('{TOKEN:ATTRIBUTE_1}');
$("#answer31484X45X9933_SQ001").val('{TOKEN:ATTRIBUTE_3}');
$("#answer31484X45X9934_SQ001").val('{TOKEN:ATTRIBUTE_4}');
 
var sommequejeveux = 0;
if (attr1.lenght!=0){sommequejeveux += parseFloat(attr1); }
if (attr2.lenght!=0){sommequejeveux += parseFloat(attr2); }
if (attr3.lenght!=0){sommequejeveux += parseFloat(attr3); }
if (attr4.lenght!=0){sommequejeveux += parseFloat(attr4); }
 
$("#answer31484X45X9935_SQ001").val(sommequejeveux);
});
</script>
Ajouter }); en dernière ligne

Ensuite tu as un soucis sur Erreur : document.getElementById("answer31484X43X980") quelquepart, le remplacer par l'équivalent en jquery régleras le problème :)

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand (or search sondages pro).

Please Log in to join the conversation.

More
5 years 9 months ago #60488 by Chafish
Yes ça marche !

un grand grand merci !

Please Log in to join the conversation.

More
5 years 9 months ago - 5 years 9 months ago #60490 by DenisChenu
:)

Encore une fois : FireBug est ton ami :).

Et puis hésite pas à contacter SCIL au besoin :)

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand (or search sondages pro).
Last Edit: 5 years 9 months ago by DenisChenu.

Please Log in to join the conversation.

Moderators: Nickko
Imprint                   Privacy policy         General Terms & Conditions         Revocation information and revocation form