Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

rand() und die FREE-Version

More
2 hours 31 minutes ago #274469 by FlorianSi
Ich habe mal ausnahmsweise keine Frage dabei sondern hoffe mit meinem Beitrag eine zentrale Frage dieses Forums annähernd zu beantworten. Wie scheinbar zahlreiche Personen vor mir hatte ich das Problem, dass eine randomisierte Fragebogengruppenzuweisung nicht möglich war. Also mit rand(), und ja den längeren Zusatzbefehl mit is.empty und jeglich weitere Ausführung habe ich auch bereits probiert, und der Zuweisung der einzelnen Fragen zu Bedingungen. Da ich schnell bemerkt habe, dass selbst ChatGPT hier an seine Grenzen stoßt, bin ich auf die altmodische Suche einer Antwort in Foren gegangen. Dort stieß ich auf einen Satz des wirklich hilfsbereiten Nutzer Joffm, den ich auch hoffe hiermit zu erreichen, welcher vielerlei Personen mit ähnlicher Problematik versuchte zu helfen. Dort sagte er, dass es möglich sein könnte, jedoch außerhalb des Rahmen des Möglichen seie dies zu überprüfen, dass die FREE-Version von Lime Survey eine Speicherung der von rand() generierten Zahl nicht ermöglicht. Ich bin auf einen Beitrag von ihm gestoßen, bei dem er wirklich ein außerordentliches Tutorial her gibt zu allen möglichen Funktionen. Als ich auf der ersten oder zweiten Seite des Skripts auf einen Befehl stieß der eine Vorraussetzung für alles darauffolgende darstellen sollte fügte ich diesen in den Text meiner Frage ein, und erhielt einen Fehlercode, der die zuvorige Vermutung jetzt bestätigen könnte. Dieser besagt folgendes: 

"Your content contains JavaScript. Saving scripts is not available with the FREE plan."

Ich denke, dass klärt womöglich diesen Sachverhalt ein für alle Mal. Ich warte derweil auf meinen Zugang durch meine Uni, und erhoffe eine Rückerstattung meiner Lebenszeit, die ich in die Klärung dieser Funktion verschwendet habe. Hoffentlich hat mein Erbe einen Sinn und erspart der Allgemeinheit und Joffm einiges an Lebenszeit! 

Ich werde von der Uni noch die Lizenz erhalten, jedoch verzögert sich das ein wenig. Vielleicht kann mir derweil jemand sagen, ob meine Randomisierung eigentlich funktionieren müsste?

Viele Grüße und fröhliches Umfragen Erstellen mit einer Software, die ihr nicht in der Uni beigebracht bekommt, obwohl sie die E inzige ist, die euch der Ethikrat bewilligt:)...

Please Log in to join the conversation.

More
1 hour 47 minutes ago - 1 hour 45 minutes ago #274471 by Joffm
Replied by Joffm on topic rand() und die FREE-Version
Hallo,
durch Opferung eines bisschen mehr Deiner Lebenszeit hättest Du dies lesen können im Thread 
"Bitte erst lesen, dann im Forum schreiben"
Dort steht.

Wenn ihr das erste Mal eine Nachricht schreibt, muss diese erst von uns freigegeben werden, bevor sie öffentlich erscheint. Das kann ein paar Stunden dauern, wir bitte um Geduld.

Damit hättest Du dann die geopferte Zeit wieder hereinholen können und der doppelte Post wäre überflüssig. 
Ich habe ihn daher auch gelöscht.

So, das war die kleine Rüge am Anfang.

Jetzt sprichst Du aber von zwei verschiedenen Dingen.
Einmal eine simple Benutzung von ExpressionScript, dann aber auch von javascript.

Und in der Tat scheint es so zu sein, dass im Free Plan javascript nicht mehr möglich ist.
Dies scheint alle "neu abgeschlossenen" Hostings zu betreffen; wir Alten haben wohl so etwas wie Besitzstandswahrung, denn ich kann ohne Weiteres javascript benutzen.

Dazu sei aber gesagt: "Was nützt denn der Free Plan?" Er dient ja  dazu einmal in LimeSurvey hineinzuschnuppern; für die produktive Arbeit sind 25 Antworten wohl etwas sehr wenig. Die verbrätst Du ja schon beim Testen.

Jetzt kommt aber der nächste Pferdefuß. Viele, sehr viele Unis verbieten ihren Studenten javascript zu benutzen. Da gehen die Admins auf Sicherheit, damit nicht mit kreativer Gewalt versucht wird, Schaden anzurichten. Musst Du einfach abwarten.

Und dazu - also zum ExpressionScript

Vielleicht kann mir derweil jemand sagen, ob meine Randomisierung eigentlich funktionieren müsste?

Ja, müsste sie.
Mal schauen. In Deinem zweiten post hast Du ja einen lss Export angehängt.

Bis dann

Joffm



 

 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 1 hour 45 minutes ago by Joffm.

Please Log in to join the conversation.

More
1 hour 18 minutes ago #274472 by Joffm
Replied by Joffm on topic rand() und die FREE-Version
Hallo,
Tja, da hast Du etwas nicht ganz verstanden.
Ich finde es auch nicht so superglücklich.

Aber vorweg: Woher stammt denn dies?
{if(is_empty(RAN4), floor(rand(1,4.9999)), RAN4)}
Wie im Handbuch steht ist "rand(x,y)" definiert als "Generate a random integer".
Soll heißen: Dieses "floor"-Gedöns ist überflüssig. {if(is_empty(RAN4), rand(1,4), RAN4)} ist völlig ausreichend

Aber jetzt die Hauptsache.
Du hast in den Fragetext von RAN4 geschrieben
{if(is_empty(RAN4), floor(rand(1,4.9999)), RAN4)}

Außerdem steht im Feld "Logik / Gleichung"
if(is_empty(RAN4), floor(rand(1,4.9999)), RAN4)

Zunächst eine Erläuterung dieser beiden Felder.
In den Fragetext einer Gleichung kannst Du auch weiteren Text schreiben, z.B. um das Ergebnis einer Berechnung gleich zu kommentieren
"Ihr erzieltes Ergebnis war {sum(that.Q1.NAOK)}"
Und nun wird genau dieser Text auch in der Datenbank gespeichert. Das bedeutet, ein späterer Zugriff auf das Ergebnis (z.B. in einer Bedingung) wie "eqQ1>20" funktioniert nicht, da die Variable ja außerdem den gesamten übrigen Text enthält.

Um dies zu vermeiden, kann man die eigentliche Berechnung in das Feld "Gleichung" schreiben, und im Fragetext mit der Variablen "self" darauf referenzieren, z.B.
"Ihr erzieltes Ergebnis war {self}"

Ich persönlich halte dies für Humbug. Ich schreibe weiterhin meine Berechnungen in den Fragetext, und wenn ich etwas anzeigen will, wird eine Frage "Textanzeige" genommen.

So, zum guten Schluss Dein Fehler.
Ich habe es bereits oben rot markiert.
Es fehlen die geschweiften Klammern.
Zugegeben, man muss immer genau gucken; bei manchen Feldern (wie "Fragevalidierungsgleichung") sind die Klammern rechts und links des Feldes angedeutet- sie müssen also nicht explizit hinzugefpügt werden -, bei manchen eben nicht.
Also, entscheide Dich, wo die Zahl erzeugt werden soll, Fragetext oder "Gleichung"-Feld Und benutze die richtige Syntax.

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless

Please Log in to join the conversation.

Moderators: holchJoffmtpartner

Lime-years ahead

Online-surveys for every purse and purpose