Tableau avec questions différents types

More
8 months 1 week ago #188841 by MONIMEAU
Bonjour,

Est-il possible de créer un tableau comportant en colonne plusieurs questions correspondant à différents types de réponses possibles ?

Par exemple en ligne un identifiant (ou prénom ou rang), puis en colonne des questions de différents types (une date en année ; une question OUI/NON; une date en mois/semaine; ...)

Merci par avance pour votre aide.

Please Log in to join the conversation.

LimeSurvey Partners
More
8 months 1 week ago #188852 by Nickko
Pas de manière facile, il faut créer tes différentes questions et les regrouper dans un tableau à l'aide de Javascript.

Denis devrait pouvoir t'en dire plus

Nickko
Head of ergonomics, UX & UI.

Please Log in to join the conversation.

More
8 months 1 week ago #188855 by DenisChenu
C'est faisable avec un gros packet de javascript
Tu as la base du script pour les anciennes version ici : manual.limesurvey.org/Workarounds:_Quest...stion_types_in_array
Au cas ou @tpartner de partnersurveys.com/ est celui qui connait bien ce genre de solution.

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 .
An error happen ? Before make a new topic : remind the Debug mode .

Please Log in to join the conversation.

More
8 months 2 days ago #189080 by loconstantin
On utilise ce workaround sur notre version 2.06 mais est-ce qu'il y a un moyen de le faire fonctionner sur la version 3?

Merci

Please Log in to join the conversation.

More
8 months 2 days ago #189086 by DenisChenu
tparner l'a déjà modifié, il faut chercher sur le forum anglais.

Mais la base reste la mê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 , plugin development .
An error happen ? Before make a new topic : remind the Debug mode .
The following user(s) said Thank You: loconstantin

Please Log in to join the conversation.

More
2 months 3 weeks ago #194758 by GabrielSaavedra76
Bonjour,

Avec le même objectif que @Monimeau, j'ai suivi les instructions pour la création du tableau. Je cherche à aligner 1) une question à choix multiple (une option de réponse par ligne), 2) une liste déroulante et 3) deux échelles likert. Toutefois, le processus est un vrai casse-tête étant donné mes connaissances en JS et CSS.

Ce que j'ai essayé :

- Le workaround proposé par tpartner ( manual.limesurvey.org/Workarounds:_Quest...stion_types_in_array ). J'ai téléchargé le modèle qu'il propose. Sauf qu'avec la version 3.22.5 (thème Fruity), il semblerait avoir un conflit. Je mets en pièce jointe un screenshot du résultat de son script avec ma version de LS. De plus, j'utilise des types de question différents à ceux qu'il utilise dans son exemple, ce qui m'amène à modifier le script. Je suis tout à fait partant pour le faire mais sans connaître les codes pour chaque question et les commandes à utiliser ça va vite faire n'importe quoi.

- Le plugin proposé par M. Chenu : www.limesurvey.org/index.php?option=com_...textadapt&Itemid=729 . Ici, le problème c'est que je ne sais pas comment faire pour importer le plugin dans la plateforme (et ne suis pas sûr si celui ci pourrait m'être utile pour ce que je cherche à faire). Il me semble que je dois utiliser git (outil dont je dispose et je l'ai utilisé quelques fois avec github). Cependant, je ne connais pas toutes les commandes et je ne sais pas comment m'y prendre.

Si quelqu'un pourrait m'éclairer je lui serais très reconnaissant.

Je vous remercie de votre aide.
Attachments:

Please Log in to join the conversation.

More
2 months 3 weeks ago #194764 by Joffm
Voulez-vous faire ça?




Juste un petit javascript facile à changer.


Voici un exemple.

File Attachment:

File Name: limesurvey...8928.lss
File Size:21 KB


Joffm


Volunteers are not paid.
Not because they are worthless, but because they are priceless
Attachments:

Please Log in to join the conversation.

More
2 months 3 weeks ago #194778 by GabrielSaavedra76
Bonjour Joffm,

Merci pour votre excellente réactivité et le script que vous me proposez. Je l'ai téléchargé et passé la matinée à l'adapter avec mon contenu. Toutefois, je dois surement ignorer quelque chose parce qu'en modifiant uniquement les options de réponse je n'obtiens pas le même résultat que vous (voire pièce jointe "Resultat Script Joffm"). Il marche que si je modifie uniquement les intitulés des labels dans l'onglet d'édition des questions (pièce jointe "Resultat Script Joffm labels").

Globalement je cherche à faire plus ou moins ce que vous illustrez dans les images. Je mets en pièce jointe un aperçu du résultat recherché.

Par ailleurs, est-ce que ça serait envisageable de préciser le processus derrière la démarche ? Ou partager des ressources qui permettent de comprendre comment vous avez fait ? Je comprends bien-sur que le forum ne soit pas dédié à des tutoriels JS mais je dois refaire le même tableau une dizaine de fois avec des items différents et ça serait parfait d'être un peu plus autonome avec la plateforme.

Je vous remercie de votre aimable aide,
Attachments:

Please Log in to join the conversation.

More
2 months 3 weeks ago #194779 by Joffm
Bonjour

<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="">Please choose...</option>\
													<option value="1">a</option>\
													<option value="2">b</option>\
													<option value="3">c</option>\
													<option value="4">d</option>\
													<option value="5">e</option>\
												</select>'); 
		$('.answer-item.answer_cell_X003', thisQuestion).addClass('with-select').append('<select class="inserted-select form-control list-question-select">\
													<option value="">Please choose...</option>\
													<option value="1">simple</option>\
													<option value="2">difficile</option>\
													<option value="3">tres difficile</option>\
													<option value="4">NSP</option>\
												</select>'); 
 
		// Listeners
		$('.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');
			}
		});
 
		// 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);
		});
 
		// Clean-up styles
		$('select.inserted-select', thisQuestion).css({
			'max-width': '100%'
		});
		$('.with-select input:text', thisQuestion).css({
			'position': 'absolute',
			'left': '-9999em'
		});
	});
</script>




Rappelez-vous: le script est pour un tableau (texte)

Joffm


Volunteers are not paid.
Not because they are worthless, but because they are priceless
Attachments:

Please Log in to join the conversation.

More
2 months 3 weeks ago #194788 by GabrielSaavedra76
Merci pour ce nouveau script, Joffm.

J'avais bien compris que le script était fait pour le tableau (textes) mais pas son fonctionnement. Ce n'est pas tout-à-fait intuitif quand on ne parle pas JS. Je l'ai un peu modifié pour qu'il ressemble davantage à ce que je cherche (voir pièce jointe).

J'ai également compris que lorsqu'on veut ajouter des items qui se déplient il faut aller dans la partie " // Insert selects ". Mais comment faire si on veut faire apparaître des boutons radio, échelles à choix multiple... Bref n'importe quelle autre type de question ? D'ailleurs vous faites une deuxième question dans le document que vous m'avez envoyé. Cette question elle sert à quoi exactement ? Quand on l'efface l'enquête ne marche plus.

Je serais partant pour faire un dossier avec plusieurs modèles pour les autres utilisateurs avec les différents types de questions. Il me faut juste des repères. Je suis allé voir le manuel pour avoir les classes de chaque question mais je ne trouve pas ce qu'il faut, comme dans l'exemple que vous m'avez fournit :

$('.answer-item.answer_cell_X001', thisQuestion).addClass('with-select').append('<select class="inserted-select form-control list-question-select">\

En tout cas merci beaucoup de votre aimable aide !
Attachments:

Please Log in to join the conversation.

More
2 months 3 weeks ago #194799 by Joffm

Mais comment faire si on veut faire apparaître des boutons radio, échelles à choix multiple...



<script type="text/javascript" charset="utf-8">
	$(document).ready(function(){	
 
		// Identify this question
		var thisQuestion = $('#question{QID}');
 
		// Assign column-specific classes
		$('table.subquestion-list tr', thisQuestion).each(function(i) {
 
			$('> *:gt(0)', this).each(function(i){
				$(this).addClass('column-'+(i+1));
				$(this).attr('data-column', i+1);
			});
		});
 
 
		// Hide the text inputs in columns 1
		$('.column-1 input[type="text"]', thisQuestion).hide();
 
		// Loop through all column-1 inputs
		$('.answer-item.column-1 input[type="text"]', thisQuestion).each(function(i) {
			var thisID = $(this).attr('id');
			var thisValue = $(this).val();
 
			// Insert the radios
			$(this).parent().addClass('radio').append('<span class="inserted-radio-wrapper">\
										<input id="'+thisID+'-1" class="radio" value="1" name="'+thisID.replace(/answer/, '')+'_radio" type="radio">\
										<label class="control-label radio-label" for="'+thisID+'-1">No Opportunity</label>\
									</span><br/>\
									<span class="inserted-radio-wrapper">\
										<input id="'+thisID+'-2" class="radio" value="2" name="'+thisID.replace(/answer/, '')+'_radio" type="radio">\
										<label class="control-label radio-label" for="'+thisID+'-2">Opportunity, no Participation</label>\
									</span><br/>\
									<span class="inserted-radio-wrapper">\
										<input id="'+thisID+'-3" class="radio" value="3" name="'+thisID.replace(/answer/, '')+'_radio" type="radio">\
										<label class="control-label radio-label" for="'+thisID+'-3">Participated</label>\
									</span>');
 
			// Initial radio states
			$(this).closest('td').find('input[type="radio"][value="'+thisValue+'"]').prop('checked', true);
		});
 
		// Listener on the radios
		$('.answer-item.column-1 input[type="radio"]', thisQuestion).on('click', function() {
			var thisInput = $(this).closest('td').find('input[type="text"]');
			$(this).closest('td').find('input[type="text"]').val($(this).val());
			checkconditions($(thisInput).val(), $(thisInput).attr('name'), 'text');
		});
 
 
		// Some clean-up styles for the radios (could be placed in template.css)
		$('thead th, .answer-item.column-1', thisQuestion).css({
			'text-align': 'left',
            'margin-left': '0px'
		});
		$('.answer-item.column-1 .inserted-radio-wrapper', thisQuestion).css({
			'display': 'inline-block',
			'margin': '0px 0px 0 0px',
            'padding-left':'20px'
		});
		$('.answer-item.column-1 label', thisQuestion).css({
			'padding': '0'
		});
		$('.answer-item.column-1 .radio-label', thisQuestion).css({
			'padding-left': '3px',
			'margin-right': '3px',
            'padding':'0px 0px 0px 3px',
            'margin-left':'10px'
		});
 
 
		// Fix up the row background colours
		var rowIndex = 0;
		$('table.subquestion-list tbody tr', thisQuestion).each(function(i){
			rowIndex ++;
			$(this).removeClass('array1, array2');
			if(rowIndex % 2 == 0) {
				$(this).addClass('array1');
			}
			else {
				$(this).addClass('array2');
			}
		});
	});
</script>


Volunteers are not paid.
Not because they are worthless, but because they are priceless
Attachments:

Please Log in to join the conversation.

More
2 months 3 weeks ago #194800 by DenisChenu
J'ai juste une remarque concernant ce type de tableau .

C'est pas fait pour internet ....
En fait : c'est super difficile à comprendre ....

Il vaut peut être faire 1 groupe/page par métier et avoir quelque chose de plus agréable à remplir et à comprendre.

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 .
An error happen ? Before make a new topic : remind the Debug mode .

Please Log in to join the conversation.

More
2 months 3 weeks ago #194809 by GabrielSaavedra76
Je vous remercie pour votre réactivité et le temps que vous avez consacré à me répondre, Joffm. Je vais prendre un moment pour comprendre le script, le remanier et peut-être proposer un document avec plusieurs modèles comme je l'ai mentionné plus haut.

Please Log in to join the conversation.

More
2 months 3 weeks ago #194811 by GabrielSaavedra76
Bonjour M. Chenu,

Je crois que vous avez proposé sensiblement la même remarque auparavant et je ne peux qu'être d'accord. Toutefois, en l'occurrence j'ai 10 familles de métiers avec chacune entre 5 et 15 métiers. Faire une page par métier est donc peu envisageable.

Je vais faire un test pour voir comment ça se déploie sur des dispositifs mobiles en espérant que ça soit lisible. Autrement ma semaine sera plutôt rock and roll...

Merci de votre remarque,

Please Log in to join the conversation.

Moderators: Nickko

Start now!

Just create your account and start using Limesurvey today.

Register now