info:limesurvey:scroll_conditions

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

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

*vérifier vos données et supprimer les doublons

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

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:06
  • de radeff