Welcome, Guest
Username: Password: Remember me

TOPIC: Ajouter une modalité de réponse si la précédente est remplie

Ajouter une modalité de réponse si la précédente est remplie 3 months 1 week ago #107857

  • Remundo
  • Remundo's Avatar
  • OFFLINE
  • Platinum Lime
  • Posts: 358
  • Thank you received: 28
  • Karma: 10
Bonjour,
J'aimerais connaître un code tout simple me permettant d'ajouter automatiquement une modalité de réponse à une question si la modalité précédente est déjà remplie.

Voir pièce jointe pour l'exemple : n'afficher que "Etablissement 2" si "Etablissement 1" est renseigné.
L'idéal serait que le répondant puisse ajouter librement une modalité supplémentaire ou non à la question!

Ensuite à la question suivante, il doit choisir un établissement parmi celui ou ceux donnés dans la question ci-dessus.
Est-il possible avec un code du type {INSERTANSX11111X11111X111111SQ111} que cela fonctionne avec deux questions présentes dans le même groupe? Je sais que cela fonctionne avec un affichage question par question.

Merci.
Attachments:
Rémi Biscueil
Technicien en production et analyse de données
Service de l'évaluation, des études et du pilotage
15, Rue de l'Hôtel Dieu 86022 POITIERS Cedex
The administrator has disabled public write access.

Ajouter une modalité de réponse si la précédente est remplie 3 months 1 week ago #107864

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 6228
  • Thank you received: 793
  • Karma: 238
Salut,

Workaround uniquement : manual.limesurvey.org/Workarounds:_Manip...ipt#Expandable_Array

Pour la 2èpe solution: ta version de LimeSurvey est encore ancienne, non ? Parceque'il me semble que sur la dernière ca marche quasi direct.
The administrator has disabled public write access.

Ajouter une modalité de réponse si la précédente est remplie 3 months 1 week ago #107866

  • Remundo
  • Remundo's Avatar
  • OFFLINE
  • Platinum Lime
  • Posts: 358
  • Thank you received: 28
  • Karma: 10
Oui, c'est la version 1.91. Impossible pour nous de mettre à jour avant fin mai car nous utilisons des logiciels non compatibles avec les nouvelles versions pour nos enquêtes en cours.

Merci pour le code, c'est déjà mieux mais quelle partie du code dois-je modifier pour faire apparaître une seconde modalité uniquement si la première est remplie et non cochée ou cliquée?

<script type="text/javascript">

$(document).ready(function() {

// A function to show subsequent rows of an array as options are checked
function expandingArray(qID) {

// Build an array of the question rows
var arrayRow = '#question' + qID + ' table.question tbody tr';

// Initially hide all rows unless an input was previously checked
$( arrayRow ).each(function(i) {

if ( $( arrayRow + ':eq(' + i + ') input.radio:checked' ).length != 0 ) {
$(this).attr('name', 'clickedRow');
}
else {
$(this).attr('name', 'hidden').hide();
}
});

// Now show the first hidden row
addRow();

// Add another row when an option is checked for the first time
$( '#question' + qID + ' td.answer input.radio' ).click(function (event) {

if ($(this).parents('tr:eq(0)').attr('name') != 'clickedRow') {
addRow();
$(this).parents('tr:eq(0)').attr('name', 'clickedRow');
}

// The original function of the click event
checkconditions(this.value, this.name, this.type);
});

// Add another row when an table cell is clicked for the first time
$( '#question' + qID + ' table.question tbody td' ).click(function (event) {

if ($(this).parents('tr:eq(0)').attr('name') != 'clickedRow') {
addRow();
$(this).parents('tr:eq(0)').attr('name', 'clickedRow');
}
});

// Function to add a row
function addRow() {
$( arrayRow + '[name="hidden"]:first' ).attr('name', 'visible').show();
}
}

// Call the function with a question ID
expandingArray(QQ);

});
</script>
Rémi Biscueil
Technicien en production et analyse de données
Service de l'évaluation, des études et du pilotage
15, Rue de l'Hôtel Dieu 86022 POITIERS Cedex
The administrator has disabled public write access.

Ajouter une modalité de réponse si la précédente est remplie 3 months 6 days ago #107902

  • Remundo
  • Remundo's Avatar
  • OFFLINE
  • Platinum Lime
  • Posts: 358
  • Thank you received: 28
  • Karma: 10
Denis, si tu peux m'aider là-dessus, sinon tant pis je laisse facultatif avec plusieurs champs affichés d'office.
Remundo wrote:
Oui, c'est la version 1.91. Impossible pour nous de mettre à jour avant fin mai car nous utilisons des logiciels non compatibles avec les nouvelles versions pour nos enquêtes en cours.

Merci pour le code, c'est déjà mieux mais quelle partie du code dois-je modifier pour faire apparaître une seconde modalité uniquement si la première est remplie et non cochée ou cliquée?

<script type="text/javascript">

$(document).ready(function() {

// A function to show subsequent rows of an array as options are checked
function expandingArray(qID) {

// Build an array of the question rows
var arrayRow = '#question' + qID + ' table.question tbody tr';

// Initially hide all rows unless an input was previously checked
$( arrayRow ).each(function(i) {

if ( $( arrayRow + ':eq(' + i + ') input.radio:checked' ).length != 0 ) {
$(this).attr('name', 'clickedRow');
}
else {
$(this).attr('name', 'hidden').hide();
}
});

// Now show the first hidden row
addRow();

// Add another row when an option is checked for the first time
$( '#question' + qID + ' td.answer input.radio' ).click(function (event) {

if ($(this).parents('tr:eq(0)').attr('name') != 'clickedRow') {
addRow();
$(this).parents('tr:eq(0)').attr('name', 'clickedRow');
}

// The original function of the click event
checkconditions(this.value, this.name, this.type);
});

// Add another row when an table cell is clicked for the first time
$( '#question' + qID + ' table.question tbody td' ).click(function (event) {

if ($(this).parents('tr:eq(0)').attr('name') != 'clickedRow') {
addRow();
$(this).parents('tr:eq(0)').attr('name', 'clickedRow');
}
});

// Function to add a row
function addRow() {
$( arrayRow + '[name="hidden"]:first' ).attr('name', 'visible').show();
}
}

// Call the function with a question ID
expandingArray(QQ);

});
</script>
Rémi Biscueil
Technicien en production et analyse de données
Service de l'évaluation, des études et du pilotage
15, Rue de l'Hôtel Dieu 86022 POITIERS Cedex
The administrator has disabled public write access.
Moderators: Nickko
Time to create page: 0.139 seconds
Donation Image