- Posts: 7
- Thank you received: 0
Welcome to the LimeSurvey Community Forum
Ask the community, share ideas, and connect with other LimeSurvey users!
Randomisierte Auswahl von Teilfragen stellen
- a.jambon
- Topic Author
- Offline
- New Member
Less
More
3 years 1 month ago #213383
by a.jambon
Randomisierte Auswahl von Teilfragen stellen was created by a.jambon
Hallo,
ich erstelle gerade eine Umfrage mit LimeSurvey (Version 3.25.16) und komme leider nicht weiter.
Es geht darum, dass ich eine Frage vom Typ "Mehrfache numerische Eingabe" erstellt habe.
In die Teilfragen wurden Bilder eingefügt, die mit einem Schieberegler bewertet werden sollen.
Ich habe 20 Bilder bzw. 20 Teilfragen. Davon sollen jedoch jedem Teilnehmenden nur eine randomisierte Auswahl von 10 Bildern erscheinen.
"Zufällige Reihenfolge" habe ich bereits auf "an" gestellt. Wie geht es jetzt weiter?
Danke schonmal für eure Hilfe!
LG Anne
ich erstelle gerade eine Umfrage mit LimeSurvey (Version 3.25.16) und komme leider nicht weiter.
Es geht darum, dass ich eine Frage vom Typ "Mehrfache numerische Eingabe" erstellt habe.
In die Teilfragen wurden Bilder eingefügt, die mit einem Schieberegler bewertet werden sollen.
Ich habe 20 Bilder bzw. 20 Teilfragen. Davon sollen jedoch jedem Teilnehmenden nur eine randomisierte Auswahl von 10 Bildern erscheinen.
"Zufällige Reihenfolge" habe ich bereits auf "an" gestellt. Wie geht es jetzt weiter?
Danke schonmal für eure Hilfe!
LG Anne
The topic has been locked.
- Joffm
- Away
- LimeSurvey Community Team
Less
More
- Posts: 12941
- Thank you received: 3979
3 years 1 month ago #213406
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Randomisierte Auswahl von Teilfragen stellen
Hallo, Anne,
das Prinzip findest Du hier
[url] forums.limesurvey.org/forum/german-forum...zufallszahlen#209700 [/url]
Hier geht es zwar um 3 aus 8, aber das ist ja egal.
Ich sollte wirklich einmal ein allgemeines Tutorial darüber schreiben, als es immer einzeln zu wiederholen.
Okay:
Du erstellst eine Frage vom Typ "kurzer Text". Nennen wir sie einfach "QBilder"
Dahinein kommt dieses javascript (im Quellcode-Modus)
Damit erhältst Du so etwas als Ergebnis in dieser Frage
also 10 zufällige Zahlen von Deinen 20.
Nun ist der Rest simpel.
Jedes Bild bekommt als Relevanzgleichung: "Ist die Nummer in diesen Zahlen enthalten?"
Dazu gibt es die Funktion "strpos". Diese liefert die Stelle, an welcher der Suchtext im Gesamttext zu finden ist, und "0", wenn er nicht drin ist.
Findest Du alles hier im Handbuch:
[url] manual.limesurvey.org/ExpressionScript_-...mplemented_functions [/url]
Da aber die erste Stelle im Text den Index "0" hat, kann mann nicht unterscheiden: "Ist es ein gefundener Text, der an der ersten Stelle (also Index "0") beginnt, oder ist es die "0", weil nicht gefunden.
Jetzt erschließt sich Dir, warum ich die Raute an den Anfang gestellt habe. Damit fängt jeder Text mindestens an Stelle "1" an.
Also werden Deine Relevanzgleichungen irgendwie so aussehen:
Bild 1: strpos(QBilder,"01")>0
Bild 2: strpos(QBilder,"02")>0
Bild 3: strpos(QBilder,"03")>0
Bild 4: strpos(QBilder,"04")>0
...
Bild 20: strpos(QBilder,"20")>0
Viel Erfolg
Joffm
das Prinzip findest Du hier
[url] forums.limesurvey.org/forum/german-forum...zufallszahlen#209700 [/url]
Hier geht es zwar um 3 aus 8, aber das ist ja egal.
Ich sollte wirklich einmal ein allgemeines Tutorial darüber schreiben, als es immer einzeln zu wiederholen.
Okay:
Du erstellst eine Frage vom Typ "kurzer Text". Nennen wir sie einfach "QBilder"
Dahinein kommt dieses javascript (im Quellcode-Modus)
Code:
<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 = []; for (var i = 1; i < 21; i++) { w=("00" + i).slice(-2); arr.push(w); } arr = shuffle(arr); anumbers = arr.slice(0,10).join(','); $('#question{QID} input[type="text"]').val("#"+anumbers); $('#question{QID}').hide(); }); </script>
Damit erhältst Du so etwas als Ergebnis in dieser Frage
also 10 zufällige Zahlen von Deinen 20.
Nun ist der Rest simpel.
Jedes Bild bekommt als Relevanzgleichung: "Ist die Nummer in diesen Zahlen enthalten?"
Dazu gibt es die Funktion "strpos". Diese liefert die Stelle, an welcher der Suchtext im Gesamttext zu finden ist, und "0", wenn er nicht drin ist.
Findest Du alles hier im Handbuch:
[url] manual.limesurvey.org/ExpressionScript_-...mplemented_functions [/url]
Da aber die erste Stelle im Text den Index "0" hat, kann mann nicht unterscheiden: "Ist es ein gefundener Text, der an der ersten Stelle (also Index "0") beginnt, oder ist es die "0", weil nicht gefunden.
Jetzt erschließt sich Dir, warum ich die Raute an den Anfang gestellt habe. Damit fängt jeder Text mindestens an Stelle "1" an.
Also werden Deine Relevanzgleichungen irgendwie so aussehen:
Bild 1: strpos(QBilder,"01")>0
Bild 2: strpos(QBilder,"02")>0
Bild 3: strpos(QBilder,"03")>0
Bild 4: strpos(QBilder,"04")>0
...
Bild 20: strpos(QBilder,"20")>0
Viel Erfolg
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The following user(s) said Thank You: a.jambon
The topic has been locked.
- a.jambon
- Topic Author
- Offline
- New Member
Less
More
- Posts: 7
- Thank you received: 0
3 years 1 month ago #213410
by a.jambon
Replied by a.jambon on topic Randomisierte Auswahl von Teilfragen stellen
Hallo Joffm,
erstmal vielen Dank für deine Hilfe.
Ich habe es jetzt mal ausprobiert und das javascript einfach mal reinkopiert. Es hat leider nicht funktioniert; der Code wird mit vielen Fehlermeldungen angezeigt, undefinierte Variablen etc.
Ich muss dazusagen, dass ich wirklich absolut keine Ahnung von Javacript habe. Muss ich an dem Code noch irgendwas verändern, wenn ich ihn ins Quelltext-Feld kopiere?
Sorry für meine Ahnungslosigkeit.
Liebe Grüße
Anne
erstmal vielen Dank für deine Hilfe.
Ich habe es jetzt mal ausprobiert und das javascript einfach mal reinkopiert. Es hat leider nicht funktioniert; der Code wird mit vielen Fehlermeldungen angezeigt, undefinierte Variablen etc.
Ich muss dazusagen, dass ich wirklich absolut keine Ahnung von Javacript habe. Muss ich an dem Code noch irgendwas verändern, wenn ich ihn ins Quelltext-Feld kopiere?
Sorry für meine Ahnungslosigkeit.
Liebe Grüße
Anne
The topic has been locked.
- holch
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 11660
- Thank you received: 2742
3 years 1 month ago - 3 years 1 month ago #213412
by holch
I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.
Replied by holch on topic Randomisierte Auswahl von Teilfragen stellen
Wie heisst denn deine Text-Frage? Auch "QBilder" wie bei Joffm?
Ansonsten ist es immer gut, eine LSS-Datei anzuhängen, von dem was du gemacht hast. Dann kann man leichter sehen, wo das Problem ist.
Da wäre es natürlich auch wichtig, die genauen Fehlermeldungen zu sehen, denn die geben im Normalfall Aufschluss darüber, wo man suchen muss.
Das ist wie wenn du zum Mechaniker gehst und sagst: "Mein Auto funktioniert nicht, es hat ein Lämpchen geblinkt". Der wird dann auch noch ein paar Fragen haben, welches Lämpchen, etc...
Ansonsten ist es immer gut, eine LSS-Datei anzuhängen, von dem was du gemacht hast. Dann kann man leichter sehen, wo das Problem ist.
Es hat leider nicht funktioniert; der Code wird mit vielen Fehlermeldungen angezeigt, undefinierte Variablen etc.
Da wäre es natürlich auch wichtig, die genauen Fehlermeldungen zu sehen, denn die geben im Normalfall Aufschluss darüber, wo man suchen muss.
Das ist wie wenn du zum Mechaniker gehst und sagst: "Mein Auto funktioniert nicht, es hat ein Lämpchen geblinkt". Der wird dann auch noch ein paar Fragen haben, welches Lämpchen, etc...
I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.
Last edit: 3 years 1 month ago by holch.
The topic has been locked.
- Joffm
- Away
- LimeSurvey Community Team
Less
More
- Posts: 12941
- Thank you received: 3979
3 years 1 month ago #213415
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Randomisierte Auswahl von Teilfragen stellen
Genau, "funktioniert nicht" ist etwas dünn.
In einem solchen Fall musst Du uns eben zeigen, was Du genau gemacht hast.
Also schicke den lss Export der Umfrage.
Joffm
In einem solchen Fall musst Du uns eben zeigen, was Du genau gemacht hast.
Also schicke den lss Export der Umfrage.
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
- a.jambon
- Topic Author
- Offline
- New Member
Less
More
- Posts: 7
- Thank you received: 0
3 years 1 month ago - 3 years 1 month ago #213417
by a.jambon
Replied by a.jambon on topic Randomisierte Auswahl von Teilfragen stellen
Ja, die Textfrage habe ich auch "QBilder" genannt.
Wenn ich den Code in den Quellcode der Frage stelle und speichere, "verschwindet" der Code bis auf ein paar Wörter.
Diese stehen dann auch so in der Frage:
QID input[type="text"]').val("#"+anumbers); $('#questionQID').hide(); });
Bei QID steht dann "undefinierte Variable" dabei.
Ich kann euch die original lss-Datei leider nicht schicken, habe aber versucht, es nachzubauen wie ich es versucht habe (ist im Anhang).
Danke für eure Hilfe!
Wenn ich den Code in den Quellcode der Frage stelle und speichere, "verschwindet" der Code bis auf ein paar Wörter.
Diese stehen dann auch so in der Frage:
QID input[type="text"]').val("#"+anumbers); $('#questionQID').hide(); });
Bei QID steht dann "undefinierte Variable" dabei.
Ich kann euch die original lss-Datei leider nicht schicken, habe aber versucht, es nachzubauen wie ich es versucht habe (ist im Anhang).
Danke für eure Hilfe!
Attachments:
Last edit: 3 years 1 month ago by a.jambon.
The topic has been locked.
- Joffm
- Away
- LimeSurvey Community Team
Less
More
- Posts: 12941
- Thank you received: 3979
3 years 1 month ago - 3 years 1 month ago #213425
by Joffm
Uni-Version? Da haben die Studenten oftmals nur sehr, sehr eingeschränkte Rechte.
Falls nicht: Wie ist der XSS-Filter gesetzt? In "Konfiguration / Globale Einstellungen". Sollte "AUS" sein.
Denn bei mir läuft es ohne große Änderung.
Nur: Die Auswahl der Bilder muss in eine andere Gruppe.
Denn im javascript steht
Dann ist Deine Bilderfrage auch schon auf dem Bildschirm, kann also gar nicht mehr geändert werden.
Und noch eine Randomisierung zugefügt.
Gut, dann müssen wir uns etwas anderes überlegen.
Mit dieser Art Frage "mehrfach numerisch" und allen Bildern in einer Frage wird es dann nichts.
Da müssen wir die Bilder in einzelne Fragen stecken und mit etwas css zusammenrücken.
Du solltest Dir dazu einmal die Properties "gseq" und "qseq" anschauen.
[url] manual.limesurvey.org/ExpressionScript_-...#Access_to_variables [/url]
Ich werde einmal denken, aber erst morgen.
Bis dann
Joffm
PS.
Aber wir wollen auch nur genau das haben, was Du geschickt hast; einen Prototypen, der die relevanten Fragen enthält.
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Randomisierte Auswahl von Teilfragen stellen
Das deutet daraufhin, dass Du keine Rechte hast, javascript einzubauen.Wenn ich den Code in den Quellcode der Frage stelle und speichere, "verschwindet" der Code bis auf ein paar Wörter.
Uni-Version? Da haben die Studenten oftmals nur sehr, sehr eingeschränkte Rechte.
Falls nicht: Wie ist der XSS-Filter gesetzt? In "Konfiguration / Globale Einstellungen". Sollte "AUS" sein.
Denn bei mir läuft es ohne große Änderung.
Nur: Die Auswahl der Bilder muss in eine andere Gruppe.
Denn im javascript steht
Das bedeutet, dass diese Funktion loslegt, wenn das Dokument "ready" ist, fertig geladen und auf dem Bildschirm dargestellt.$(document).on('ready pjax:scriptcomplete',function(){
Dann ist Deine Bilderfrage auch schon auf dem Bildschirm, kann also gar nicht mehr geändert werden.
Und noch eine Randomisierung zugefügt.
Gut, dann müssen wir uns etwas anderes überlegen.
Mit dieser Art Frage "mehrfach numerisch" und allen Bildern in einer Frage wird es dann nichts.
Da müssen wir die Bilder in einzelne Fragen stecken und mit etwas css zusammenrücken.
Du solltest Dir dazu einmal die Properties "gseq" und "qseq" anschauen.
[url] manual.limesurvey.org/ExpressionScript_-...#Access_to_variables [/url]
Ich werde einmal denken, aber erst morgen.
Bis dann
Joffm
PS.
Du kannst natürlich, Du möchtest nicht.Ich kann euch die original lss-Datei leider nicht schicken
Aber wir wollen auch nur genau das haben, was Du geschickt hast; einen Prototypen, der die relevanten Fragen enthält.
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 3 years 1 month ago by Joffm.
The following user(s) said Thank You: a.jambon
The topic has been locked.
- a.jambon
- Topic Author
- Offline
- New Member
Less
More
- Posts: 7
- Thank you received: 0
3 years 1 month ago #213426
by a.jambon
Replied by a.jambon on topic Randomisierte Auswahl von Teilfragen stellen
Ich habe das Ganze jetzt sowohl mit meinem privaten Account als auch dem LimeSurvey-Account von der Arbeit probiert. Du hast recht, es liegt an eingeschränkten Rechten, denn auf dem privaten Account funktioniert jetzt alles.
Das ist aber schon mal super zu wissen. Ich werde mal nachfragen, ob man mir diese Rechte erteilen kann.
Falls dir doch noch eine andere Möglichkeit einfällt, gerne.
Vielen Dank auf jeden Fall schonmal!
Das ist aber schon mal super zu wissen. Ich werde mal nachfragen, ob man mir diese Rechte erteilen kann.
Falls dir doch noch eine andere Möglichkeit einfällt, gerne.
Vielen Dank auf jeden Fall schonmal!
The topic has been locked.
- holch
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 11660
- Thank you received: 2742
3 years 1 month ago #213431
by holch
I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.
Replied by holch on topic Randomisierte Auswahl von Teilfragen stellen
Vermutlich wird man dir diese Rechte nicht erteilen, weil es sich um eine globale Einstellung handelt, also entweder alle oder keiner (bis auf die Superadmins, die haben immer XSS off).
I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.
The topic has been locked.
- Joffm
- Away
- LimeSurvey Community Team
Less
More
- Posts: 12941
- Thank you received: 3979
3 years 1 month ago #213452
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Randomisierte Auswahl von Teilfragen stellen
Hallo, Anne
Kurze Frage:
Kannst Du Themes bearbeiten? Also: Hast Du die Rechte dafür?
Joffm
Kurze Frage:
Kannst Du Themes bearbeiten? Also: Hast Du die Rechte dafür?
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
- Joffm
- Away
- LimeSurvey Community Team
Less
More
- Posts: 12941
- Thank you received: 3979
3 years 1 month ago #213479
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Randomisierte Auswahl von Teilfragen stellen
Hallo, Anne,
Problem gelöst.
Hier eine Lösung, ganz ohne javascript, nur mit dem Expression Manager.
Ich hatte sie schon einmal vorgestellt. Hier unter Punkt 2.
[url] forums.limesurvey.org/forum/german-forum...zufallszahlen#209705 [/url]
Habe es für Dich einmal angepasst.
Es werden also mithilfe einiger Gleichungen die jeweiligen (Zwischen)-Ergebnisse in die Matrix geschrieben.
Am Ende hat man wieder einen String, der mit strpos als Teilfragen-Relevanz dient
Schau es einfach an.
Bei Fragen, einfach melden.
Joffm
Problem gelöst.
Hier eine Lösung, ganz ohne javascript, nur mit dem Expression Manager.
Ich hatte sie schon einmal vorgestellt. Hier unter Punkt 2.
[url] forums.limesurvey.org/forum/german-forum...zufallszahlen#209705 [/url]
Habe es für Dich einmal angepasst.
Es werden also mithilfe einiger Gleichungen die jeweiligen (Zwischen)-Ergebnisse in die Matrix geschrieben.
Am Ende hat man wieder einen String, der mit strpos als Teilfragen-Relevanz dient
Schau es einfach an.
Bei Fragen, einfach melden.
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
- Joffm
- Away
- LimeSurvey Community Team
Less
More
- Posts: 12941
- Thank you received: 3979
3 years 1 month ago - 3 years 1 month ago #213518
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Randomisierte Auswahl von Teilfragen stellen
Sorry, sorry,
es hatte sich noch ein Schreibfehler eingeschlichen.
Also noch einmal:
Joffm
es hatte sich noch ein Schreibfehler eingeschlichen.
Also noch einmal:
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 3 years 1 month ago by Joffm.
The following user(s) said Thank You: a.jambon
The topic has been locked.
Moderators: Joffm