Limiter le nombre de places OU Afficher une liste déroulante en retirant des valeurs en fonction des réponses déjà fournies
kw: limiter places inscriptions
Approche (bidouillage JS) aka "limiter réservations"

ls_reservations_limited_places-master.zip
Si vous avez p. ex. des réservations pour des dates, et que vous souhaitez retirer des dates pour lesquelles des réservations ont déjà été effectuées
*vérifier vos données et supprimer les doublonsFaire une page (script php) qui servira de point de départ et dont vous fournirez l'url à vos usagers, p. ex. http://www.monnomdedomaine/inscription 1)
<noscript> <h1>Vous DEVEZ activer JavaScript!</h1> </noscript> <?php //echo "test pour redirection en fonction du nombre d'inscrits"; $quiz=18924; //changer pour le sid du quiz var id0 = getUrlVars()["id0"]; if(id0=="javatbd18924X1719X436551013") { document.getElementById('javatbd18924X1719X436551013').style.display='none'; } var id1 = getUrlVars()["id1"]; if(id1=="javatbd18924X1719X436551014") { document.getElementById('javatbd18924X1719X436551014').style.display='none'; } //... #connect to database include("connect.inc.php"); $db=connect_db(); $db_name=db_name(); mysql_select_db($db_name,$db); $chercheA=" SELECT 18924X1719X43655 AS inscriptions FROM `lime_survey_" .$quiz ."` ORDER BY 18924X1719X43655 ASC "; //echo $chercheA; $chercheA=mysql_query($chercheA); if(!$chercheA) { echo mysql_error(); exit; } $i=0; $booked=""; //echo mysql_num_rows($chercheA); exit; while($i<mysql_num_rows($chercheA)){ if(mysql_result($chercheA,$i,'inscriptions')=="1013"){ $booked.="id0=javatbd18924X1719X436551013&"; } if(mysql_result($chercheA,$i,'inscriptions')=="1014"){ $booked.="id1=javatbd18924X1719X436551014&"; } //... $i++; } $link="http://radeff.red/limesurvey/index.php?sid=18924&".$booked; ?> <meta http-equiv="refresh" content="0;URL=<? echo $link; ?>">
Dans limesurvey ensuite:
Editer d'abord le code-source du premier groupe et ajouter:
<script type="text/javascript" charset="utf-8"> // Read a page's GET URL variables and return them as an associative array. function getUrlVars() { var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for(var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; } </script>
Editer enfin le code-source de la question sur laquelle on veut porter la condition
<script type="text/javascript" charset="utf-8"> var id0 = getUrlVars()["id0"]; if(id0=="javatbd18924X1719X436551013") { document.getElementById('javatbd18924X1719X436551013').style.display='none'; } var id1 = getUrlVars()["id1"]; if(id1=="javatbd18924X1719X436551014") { document.getElementById('javatbd18924X1719X436551014').style.display='none'; } /* ... */ </script>
Si vous entrez des valeurs, elles seront automatiquement “cachées” par ce script
Approche array filter
Le plus simple… On fait une 1e question de type “multiple”; pour la question suivante, de type array, on met dans les options avancées sous “Logic” le code de la question précédente dans le champ “array filter”
Source: vidéo officielle limesurvey sur https://www.youtube.com/watch?v=7134QebOQzY