Welcome to the LimeSurvey Community Forum

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

Taille de texte liste déroulante - tableau texte

  • kamaxime
  • kamaxime's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
6 days 3 hours ago #270071 by kamaxime
Aidez-nous à vous aider et remplissez les cases appropriées :
Votre version de LimeSurvey : Version de votre LimeSurvey : [voir en bas à droite de l'écran d'administration de votre LimeSurvey].
Votre propre serveur ou LimeSurvey Cloud :
Thème :

==================
[Écrivez ici votre question/remarque]
Bonjour 
je développe des questionnaires sur LimeSurvey Cloud Version 6.12.4.

J'ai recopié le script proposé ici   pour une question de type tableau texte. Le script permet de disposer d'une liste déroulante. Ca fonctionne bien, par contre lorsque je propose des valeurs dans la liste déroulante qui sont longues (nomenclature de produits pollués dont la réduction du nombre de caractères ou la mise en abréviation est difficile à faire), le champs avec liste déborde sur son voisin à droite bien que j'ai fixé à 100 la Taille de la zone de saisie de texte (dans Affichage). Voir captures ici: capture1 , capture2 et capture3 .

Connaissez-vous un moyen de réduire le texte en insérant une instruction dans le script ?

Le script que j'utilise:

Code:
$(function(){
        /** ID du questionnaire **/
        var questionIdentifier = $('#question{QID}');
        /** Options **/
        var selectOptions = {
            'COL001': ["Ballast de voie", "Ballast de voie non dangereux", "Bétons", "Boues contenant des hydrocarbures", "Boues de dragage", "Boues de forage, boues et laitances de béton", "Boues issue du traitement des effluents", "Boues issues de la décontamination des sols", "Boues issues du traitement physico-chimique de déchets non dangereux", "Boues provenant de séparateurs eau/hydrocarbures", "Boues provenant du traitement des eaux usées", "Déchets de constructions et de démolition en mélange", "Déchets solides provenant de la décontamination des sols ", "Enrobés", "Mélange bitumineux", "Mélange de béton, briques, tuiles et céramiques", "Refus de tri BTP", "Sables de bancs à sable issus de jardins publics", "Sables de stations d'épuration", "Terres et cailloux comprenant des substances dangereuses", "Terres et cailloux ne comprenant pas de substances dangereuses", "Terres faiblement impactées", "Terres polluées aux hydrocarbures", "Terres polluées dangereuses", "Terres polluées non dangereuses", ""]
        };
 
        var createSelect = function(key) {
 
            var select = $('<select>');
            $.each(selectOptions[key], function (id, value) {
                var option = $('<option value="' + value + '">' + value + '</option>');
                select.append(option);
            });
            return select;
        };
 
        var getKey = function(name) {
 
            for (var testKey in selectOptions) {
                if (name.indexOf('_' + testKey) > -1) {
                    return testKey;
                }
            }
            return null;
        };
 
        $.each($(questionIdentifier).find('.subquestion-list input'), function(index, element){
            var input = $(element);
            var name = input.attr('name');
            if ('text' == input.attr('type')) {
                var key = getKey(name);
                if (null != key) {
                    var select = createSelect(key);
                    input.parent().append(select);
                    select.val(input.val());
                    select.change(function(){
                        input.val(select.val());
                    });
                    input.css('display', 'none');
                }
            }
        });
    }); 

https://iauidf-my.sharepoint.com/:i:/g/personal/kayadjanian_institutparisregion_fr/EYeHMrLL5m9BpLWOqfK4lnwB4iWWfDmicqGTRfvYc_AlMg?e=8rR6gq
Merci d'avance

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
5 days 9 hours ago #270078 by Joffm
Bonjour
D'où vient ce script ?
Utilisez le « script standard » disponible ici dans le forum et tout ira bien.




Code:
<script type="text/javascript" charset="utf-8">
  $(document).on('ready pjax:scriptcomplete',function(){
    var thisQuestion = $('#question{QID}');
 
    // Insert selects
    $('.answer-item.answer_cell_X001', thisQuestion).addClass('with-select').append('<select class="inserted-select form-control list-question-select">\
              <option value="">...</option>\
            <option value="1">Altona</option>\
            <option value="2">Boues de forage, boues et laitances de béton</option>\
            <option value="3">Boues issues du traitement physico-chimique de déchets non dangereux</option>\
            <option value="4">Blankenese</option>\
            <option value="5">Allermöhe</option>\
            <option value="6">Altengamme</option>\
            <option value="7">Billwerder</option>\
    </select>');
 
// Listeners
    $('.inserted-select', thisQuestion).on('change', function(i) {
      if($(this).val() != '') {
        $(this).closest('.answer-item').find('input:text').val($('option:selected', this).val()).trigger('change');
      }
      else {
        $(this).closest('.answer-item').find('input:text').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());
      $('select.inserted-select', thisCell).val(inputText);
    });
   // Clean-up styles
    $('select.inserted-select', thisQuestion).css({
      'max-width': '100%'
    });
    $('.with-select input:text', thisQuestion).css({
      'position': 'absolute',
      'left': '-9999em'
    });
  });
</script>

 

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The following user(s) said Thank You: DenisChenu

Please Log in to join the conversation.

  • kamaxime
  • kamaxime's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
1 day 11 hours ago - 1 day 11 hours ago #270133 by kamaxime
Merci beaucoup Joffm. 

Le script que j'ai utilisé qui date un peu est ici :  forums.limesurvey.org/forum/french-forum...e-deux-%C3%A9chelles

Si je veux utiliser le script que vous proposez dans plusieurs champs, par exemple les champs X001 et X002, faut il que je duplique la partie// Insert selects comme suit ?
// Insert selects X001
    $('.answer-item.answer_cell_X001', thisQuestion).addClass('with-select').append('<select class="inserted-select form-control list-question-select">\
              <option value="">...</option>\
            <option value="1">Altona</option>\
            <option value="2">Boues de forage, boues et laitances de béton</option>\
            <option value="3">Boues issues du traitement physico-chimique de déchets non dangereux</option>\
            <option value="4">Blankenese</option>\
            <option value="5">Allermöhe</option>\
            <option value="6">Altengamme</option>\
            <option value="7">Billwerder</option>\
    </select>');
    // Insert selects X002
    $('.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">Site de traitement n°1</option>\
            <option value="2">Site de traitement n°2</option>\
    </select>');


Ou bien faut-il dupliquer tout le code entre <script> et </script> que vous avez fourni en modifiant le nom de champs dans la partie copiée?
Last edit: 1 day 11 hours ago by kamaxime.

Please Log in to join the conversation.

Moderators: Nickkoholchtpartner

Lime-years ahead

Online-surveys for every purse and purpose