Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

ajout de ligne auto sur un tableau

  • hercut
  • hercut's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 years 10 months ago #216711 by hercut
ajout de ligne auto sur un tableau was created by hercut
Bonjour,

Je ne sais pas trop comment poser la question.
Je cherche le moyen d'ajouter automatiquement des lignes à un tableau. Ça permettrait d'éviter de proposer un nombre fixe de cases.
Donc l'idée d'avoir une ligne automatique quand la précédente est remplie.

Ou la même chose, mais pas sous forme de tableau, mais question multiple. Proposer une question multiple en plus si besoin en fin de réponse.

L'idée est de faire remplir le détail (âge,sexe,race) des animaux par exemple.

Merci.
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 years 10 months ago #216718 by Joffm
Replied by Joffm on topic ajout de ligne auto sur un tableau
Bonjour,
1.
Équation de filtre conditionnel.
N'afficher la ligne suivante que lorsque la précédente est remplie.
Dans votre exemple (3 colonnes), quelque chose comme ceci:
Sous-question 2: count(self.sq.SQ001)==3
Sous-question 3: count(self.sq.SQ002)==3
...

2.
[url] forums.limesurvey.org/forum/design-issue...ew-answer-row#216648 [/url]

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
  • hercut
  • hercut's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 years 10 months ago - 2 years 10 months ago #216719 by hercut
Replied by hercut on topic ajout de ligne auto sur un tableau
Merci beaucoup,

Je vais regarder. Je dois mettre autant de fonction que de ligne possible ?

Cela fonctionne-t-il avec les questions "Multiples zones de texte court" ?
Si non, est-il possible de ne pas avoir l'axe "x" des tableaux ?
Last edit: 2 years 10 months ago by hercut.
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 years 10 months ago #216728 by DenisChenu
Replied by DenisChenu on topic ajout de ligne auto sur un tableau
Pour les multiple zone de texte court : !is_empty(self.sq_SQ001) sur SQ002 etc …

> Si non, est-il possible de ne pas avoir l'axe "x" des tableaux ?

Pas compris

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
  • hercut
  • hercut's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 years 10 months ago - 2 years 10 months ago #216730 by hercut
Replied by hercut on topic ajout de ligne auto sur un tableau
Je vais rester sous forme de tableau, cela me semble plus facile.
Car je souhaitai ne pas ajouter de nouvelle dans zone de texte court, mais une nouvelle zone complète.

Je me suis trompé, c'est "Y-Scale " que je souhaiterais ne pas faire apparaitre si possible.
J'ai vu votre plugin qui semble très complet, mais je n'ai pas accès au ftp du logiciel pour l'ajouter.

Je pense avoir réussi avec ce script donné dans le post plus haut :
Warning: Spoiler!

Il faut maintenant que je trouve le moyen de mettre dans les cases du tableau des menus déroulant.
J'imagine qu'on ne peut faire ca qu'avec un script, j'ai trouvé ca :
Code:
</script> <script type="text/javascript" charset="utf-8">
  $(document).on('ready pjax:scriptcomplete',function(){
    var thisQuestion = $('#question{QID}');
    // Add a question class
    thisQuestion.addClass('custom-array');
 
    // Column-specific classes
    $('table.subquestion-list tr', thisQuestion).each(function(i) {
      $('th, td', this).each(function(i) {
        $(this).addClass('column-'+i);
      });
    });
 
 
    // Insert selects
    $('.answer-item.answer_cell_X002', thisQuestion).addClass('with-select').append('<select class="inserted-select form-control list-question-select">\
  <option value="">...</option>\
  <option value="1">Yes</option>\
  <option value="2">No</option>\
  <option value="99">No answer</option>\
</select>');
    // Insert selects
    $('.answer-item.answer_cell_X004', thisQuestion).addClass('with-select').append('<select class="inserted-select form-control list-question-select">\
  <option value="">...</option>\
  <option value="1">Staff</option>\
  <option value="2">Department</option>\
  <option value="99">No answer</option>\
</select>');
 
        // Listeners on select elements
        $('.inserted-select', thisQuestion).on('change', function(i) {
            if($(this).val() != '') {
                $(this).closest('.answer-item').find('input:text').val($.trim($('option:selected', this).text())).trigger('change');
            }
            else {
                $(this).closest('.answer-item').find('input:text').val('').trigger('change');
            }
            
            // 4th column conditional on 2nd column
            if($(this).closest('.answer-item').hasClass('answer_cell_X002')) {
                 handleColumn4($(this));
            }
        });
        
        function handleColumn4(thisSelect) {
            var thisRow = $(thisSelect).closest('tr.subquestion-list');
            var item4 = $('.answer_cell_X004', thisRow);
var x=$(thisSelect).val();
            if(x==1)  {
                $('.inserted-select', item4).prop('disabled', false);
            }
            else {
                $('.inserted-select', item4).val('').prop('disabled', true);
                $('input:text', item4).val('').trigger('change');
            }            
        }
 
        // Returning to page
        $('.with-select input:text', thisQuestion).each(function(i) {
            var thisCell = $(this).closest('.answer-item');
            var inputText = $.trim($(this).val());
            var selectval = $('select.inserted-select option', thisCell).filter(function () { return $(this).html() == inputText; }).val();
            $('select.inserted-select', thisCell).val(selectval);
            
            // 4th column conditional on 2nd column
            if($(this).closest('.answer-item').hasClass('answer_cell_X002')) {
                 handleColumn4($('select.inserted-select', thisCell));
            }
        });
 
    // Clean-up styles
    $('select.inserted-select', thisQuestion).css({
      'max-width': '100%'
    });
    $('.with-select input:text', thisQuestion).css({
      'position': 'absolute',
      'left': '-9999em'
    });
  });
</script>
Last edit: 2 years 10 months ago by hercut.
The topic has been locked.
Moderators: Nickko

Lime-years ahead

Online-surveys for every purse and purpose