Anciennes révisionsLiens de retourExporter en PDFHaut de page Share via Share via... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer RedditDerniers changementsSend via e-MailImprimerPermalien × Limiter le nombre de places OU Afficher une liste déroulante en retirant des valeurs en fonction des réponses déjà fournies limesurvey kw: limiter places inscriptions Approche (bidouillage JS) aka "limiter réservations" https://gitlab.com/zpartakov/ls_reservations_limited_places 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 attention, le script calcule sur les valeurs fournies par la base de données des résultats du formulaire; comme on a souvent des personnes qui s'inscrivent plus d'une fois, il faut régulièrement *vérifier vos données et supprimer les doublons* afin que le calcul soit correct Faire 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 1) adresse fictive info/limesurvey/scroll_conditions.txt Dernière modification : 2020/10/26 08:06de radeff S'identifier