- Posts: 32
- Thank you received: 2
Ask the community, share ideas, and connect with other LimeSurvey users!
<script type="text/javascript" charset="utf-8"> function shuffle(array) { var currentIndex = array.length, temporaryValue, randomIndex; // While there remain elements to shuffle... while (0 !== currentIndex) { // Pick a remaining element... randomIndex = Math.floor(Math.random() * currentIndex); currentIndex -= 1; // And swap it with the current element. temporaryValue = array[currentIndex]; array[currentIndex] = array[randomIndex]; array[randomIndex] = temporaryValue; } return array; } $(document).on('ready pjax:scriptcomplete',function(){ // Fill the array var arr = ["01","02","03","04","05","06","07","08","09",10,11,12,13,14,15,16,17,18,19,20, 21,22,23,24,25,26,27,28,29,30, 31,32,33,34,35,35,36,38,39,40]; arr = shuffle(arr); var a1 = arr.slice(0, 10); var a2 = arr.slice(10, 20); var a3 = arr.slice(20, 30); var a4 = arr.slice(30, 40); alert(a4); $('#question{QID} input[type="text"]:eq(0)').val("#,"+a1); $('#question{QID} input[type="text"]:eq(1)').val("#,"+a2); $('#question{QID} input[type="text"]:eq(2)').val("#,"+a3); $('#question{QID} input[type="text"]:eq(3)').val("#,"+a4); // $('#question{QID}').hide(); }); </script>
This is done by the javascript.1. You create an array with the 40 numbers.
2. You shuffle the array
3. You split the shuffled array into 4 arrays of 10 each
Exactly. This is the "strpos"-function.4. You show only those subquestions in each array question, where the number is part of the shuffled and split array.