Welcome to the LimeSurvey Community Forum

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

Balancierte Randomisierung bei Vignetten-Design

More
2 days 11 hours ago #273938 by tabithajoy
Bitte helfen Sie uns, Ihnen zu helfen und füllen Sie folgende Felder aus:
Ihre LimeSurvey-Version: LimeSurvey Community Edition Version 6.16.2+251209
Eigener Server oder LimeSurvey-Cloud: Universitätsserver (durch Uni bereitgestellt)
Genutzte Designvorlage: Universitätsspezifische Designvorlage
==================
Hallo zusammen, 

ich möchte für meine Abschluss-Arbeit eine experimentelle Vignettenanalyse in Limesurvey umsetzen, wobei ich bei der technischen Umsetzung der Randomisierung an einen Punkt gekommen bin, bei dem ich mir unsicher bin, wie sich das sauber realisieren lässt.

Mein Szenario sieht so aus:
  • Ich habe 8 verschiedene Fallbeschreibungen (Vignetten).
  • Jede Vignette existiert in 3 unterschiedlichen Kontext-Sets, sodass es insgesamt 24 Stimuli gibt.
  • Jede teilnehmende Person soll 3 Fallvignetten beurteilen.
Dabei sollen folgende Bedingungen erfüllt sein:
  • Jede Person soll jeweils eine Vignette aus jedem Kontext-Set sehen (A, B, C).
  • Eine Person darf dieselbe Fallbeschreibung nicht zweimal sehen, auch wenn sie in einem anderen Kontext-Set vorkommt.
  • Die Zuweisung der Vignetten soll möglichst gleichmäßig über die Teilnehmenden verteilt sein (balancierte Randomisierung).
Meine Frage: Wie kann ich das am besten in LimeSurvey umsetzen? Ist das überhaupt so möglich oder bräuchte es hierzu eine zusätzliche Programmierung?

Ich danke euch im Voraus für eure Hilfe und freue mich auf eure Antworten!

Please Log in to join the conversation.

More
2 days 10 hours ago - 2 days 10 hours ago #273939 by Joffm
Hallo,
rein technisch ist dies keine so große Sache.
Ist auch direkt beschrieben in meinem "Tutorial 4: Gleichungen, Zu- und andere Fälle"
Tutorial 4 (pdf)

Im Kapitel 2 etwas zu verschiedenen Möglichkeiten, eine Zufallszahl zu generieren - oder auch "dem Zufall ein Schnippchen schlagen"
Im Kapitel 3.2.1. und 3.2.2. Dein Problem: Urnenziehung ohne Zurücklegen
Das kannst Du in der Zwischenzeit ja einmal lesen.

Was Du aber machen solltest: Schicke den lss Export der relevanten Fragen.
D,h. diese Vignetten und die Kontext-Sets.
Das dient dazu, dass ich nichts missverstehe und Dir bestmöglich helfen kann.

Bis dann
Joffm

P.S.
Bei Uni-Installationen ist es oft vom admin verboten, javascript zu benutzen.
Wie ist das bei Euch?
Ein schneller Test, ob erlaubt, ist ebenfalls im Tutorial, direkt am Anfang.




 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 2 days 10 hours ago by Joffm.

Please Log in to join the conversation.

More
2 days 10 hours ago #273940 by tabithajoy
Hallo Joffm,

vielen lieben Dank für die super schnelle Antwort und den Hinweis auf das Tutorial. Das ist schonmal goldwert.
Den JavaScript-Test habe ich eben auch direkt schonmal durchgeführt - das Popup erscheint. Also good news, JavaScript scheint erlaubt zu sein.

Ich bin gerade noch dabei, die Vignetten in LimeSurvey zu übertragen. Sobald das erfolgt ist, würde ich mich wieder bei Dir melden. Da es sich um Materialien für meine Abschlussarbeit handelt, würde ich den .lss-Export allerdings ungern öffentlich hochladen. Wäre es möglich, dass ich Dir den Export stattdessen per privater Nachricht oder per E-Mail zusende?

Vielen Dank nochmal!

Please Log in to join the conversation.

More
2 days 1 hour ago #273941 by Joffm
Hallo,
wir wollen nie die gesamte Umfrage, sondern nur den relevanten Teil.
Und auch nur einen Prototypen, der zwar die wirkliche Struktur (und Fragetypen) enthält, aber eben vom Wortlaut her beliebig ist.
Sei es so etwas
Vignette A: "Sie haben gestern Schmetterlingseiersalat gegessen. Wie würden Sie den Geschmack beschreiben?"
Vignette B: "Bei Ihrem Besuch bei Berta Biber fiel Ihnen ein Baum auf den Kopf. Wie würden Sie den Schmerz beschreiben?"
Vignette C: "Adalbert Ameise möchte Vorsitzender des Insektenzüchtervereins werden. Wie würden Sie seine Qualifikation für diesen Posten beschreiben?"
usw.

Joffm
 

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

Please Log in to join the conversation.

More
1 day 23 hours ago #273942 by tabithajoy
Die eigentlichen Vignetten kommen aus einem sensibleren medizinisch/psychologischen Bereich, deshalb möchte ich die Originaltexte ungern öffentlich posten. Ich versuche es daher einmal mit einer abstrahierten, aber strukturgleichen Beispielversion.

Der Aufbau sieht so aus. Es gibt 8 Vignetten mit jeweils einer Grundsituation, zum Beispiel:
  • V1: Die Person war im Kino und hat sich einen Abenteuerfilm angesehen. Danach dachte sie noch eine Weile über den Film nach. Am meisten blieb ihr das Ende in Erinnerung.
  • V2: Die Person war im Sommerurlaub am Meer. Abends saß sie oft noch lange draußen und hörte die Wellen. Besonders in Erinnerung blieb ihr die Ruhe.
  • V3: Die Person war in einem Restaurant essen. Das Essen war gut, und sie unterhielt sich noch lange. Am meisten blieb ihr die angenehme Atmosphäre in Erinnerung.
  • ...
  • V8: Die Person war auf einer Familienfeier. Dort sprach sie mit mehreren Leuten und blieb noch eine Weile. Besonders blieb ihr ein Gespräch am Ende in Erinnerung.
Jede dieser Vignetten gibt es in 3 Kontexten / Sets:
  • Set A = Albert Ameise
  • Set B = Berta Biber
  • Set C = Cäsar Chamäleon
Beispiel für V1:
  • AV1: Albert Ameise war im Kino und hat sich einen Abenteuerfilm angesehen....
  • BV1: Berta Biber war im Kino und hat sich einen Abenteuerfilm angesehen. ...
  • CV1: Cäsar Chamäleon war im Kino und hat sich einen Abenteuerfilm angesehen. ...
Dasselbe Prinzip gilt für V2-V8.

Technisch soll dann Folgendes passieren: Jede Person soll drei Vignetten einschätzen. Bzw. wenn wir von Ziehungen sprechen, soll jede Versuchsperson 3 Ziehungen erhalten. In diesen 3 Ziehungen soll jeder Kontext genau einmal vorkommen, also einmal A, einmal B und einmal C - wobei die Reihenfolge der Kontexte ebenfalls randomisiert sein soll. Der Vignetteninhalt selbst darf sich dabei nicht wiederholen.

Beispiel:
  • Wenn in der ersten Ziehung BV3 erscheint, darf V3 in den beiden weiteren Ziehungen nicht mehr vorkommen.
  • Wenn in der zweiten Ziehung CV8 erscheint, darf V8 in der letzten Ziehung ebenfalls nicht mehr vorkommen.
  • Die letzte Ziehung müsste dann also mit Kontext A erfolgen und dürfte nur noch aus den verbleibenden Vignetteninhalten gewählt werden.

Please Log in to join the conversation.

More
1 day 16 hours ago #273943 by Joffm
Das ist schön klar.
Schicke einfach den las Export dieses kleinen Prototypen.

Bis dann
Joffm 

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

Please Log in to join the conversation.

More
1 day 10 hours ago #273944 by tabithajoy
Anbei nun der lss Export. Ich weiß nicht, ob man normalerweise nur einen Teil der Struktur exportieren kann. Es ist jetzt die Gesamtstruktur. Prototypisch sind darin aber V1A, V1B, V1C und V2A enthalten. Ist das so ok?

Viele Grüße
Tabitha

Please Log in to join the conversation.

More
1 day 7 hours ago - 1 day 7 hours ago #273945 by Joffm
Hallo,
danke für die lss.
Dies war und ist immer wichtig.
Jetzt sehe ich, dass sich eine Vignette über zwei Gruppen erstrecken soll. Dann ist eine Randomisierung der drei Kontexte nämlich nicht trivial.
Wären die Fragen in einer Gruppe, hätte man einfach drei Gruppen gebildet mit demselben Randomisierungsgruppennamen und fertig.

Jetzt muss man ein wenig friemeln.- oder ein etwas anderes Layout wählen; schauen wir einmal.

Jetzt zu möglichen Lösungen:
Du hast 8 Vignetten (die Tätigkeiten) und drei Kontexte (die Personen).
Und Du zeigst in jedem Kontext eine der acht Vignetten an, keine doppelt.

1. Lösung
a. In einer Frage vom Typ "kurzer Text" (Q0) erzeugst Du mittels javascript einen String wie "317" oder "462" oder "728".
Dabei gibt dann die erste Stelle an, welche Vignette im ersten Kontext gezeigt wird (Bedingung: substr(Q1,0,1)=="x"), die zweite Stelle, welche im zweiten (Bedingung: substr(Q1,1,1)=="x"), usw.
b. Dasselbe kannst Du auch rein mit ExpressionScript bewerkstelligen.

Diese beiden Ideen basieren rein auf einer zufälligen Auswahl.

Wie Du vielleicht gelesen hast, gibt es auch die Möglichkeit einer zyklischen Zuweisung.
Zunächst: Es gibt 
  oder auch  Möglichkeiten, also 336.

2. Lösung
In einer Frage vom Typ "langer Text" (Q0) setzt Du als Vorgebewert alle 336 Möglichkeiten in der Form
#001:123
#002:124
...
#336:876
a. Nun benutzt Du die SAVEDID (das ist ja einfach die laufende Nummer der Antwort), und bestimmst mittels "modulo 336" welche Kombination "herausgefischt"
wird. 
Praktisch: Zunächst suchst Du in diesem Text den Wert der SAVEDID  (p1), dann liest Du die Kombination
Nehmen wir einmal : 217. Dann würdest Du mit {substr(Q0,strpos(Q0,join('#',p1))+5,3)} wieder den schon oben erwähnten dreistelligen String erhalten.
Problem dabei: Die SAVEDID zählt auch hoch, wenn der Teilnehmer abbricht. Das führt im Endeffekt dazu, dass dies auch nicht besser ist als die reine Zufallszahl

b. Du benutzt die Funktion "statCount", um die Anzahl der kompletten Befragungen zu bestimmen. Dann wieder weiter wie vor.

Da Lösung 1. am kürzesten zu realisieren ist, werde ich beide Möglichkeiten einmal bei Dir einbauen. (Auch wenn Du nur zwei Vignetten eingebaut hast  )

Desweiteren würde ich vorschlagen, "tayloring" zu verwenden, da sich die Vignetten ja nur durch den Text unterscheiden.
D.h. der Text wird in einem verschachtelten IF angezeigt, wie
{if(substr(Q0,0,1)=="1","Adalbert Ameise war im Kino...",if(substr(Q0,0,1)=="2","Adalbert Ameise war im Sommerurlaub...",if(substr(Q0,0,1)=="3","Adalbert Ameise war beim Eishockeyspiel...",if(substr(Q0,0,1)=="7","Adalbert Ameise war im Schwimmbad...","Adalbert Ameise hat nur herumgefaulenzt")))))))}

Dies ist aber abhängig von den von Dir vorgesehenen statistischen Tests.
Im Grunde halte ich dies für besser, da man hier alle Daten einer Vignette in einer Spalte hat, und zusätzlich die Trennvariable hat.

Bis später
Joffm

P.S.
Um einen Teil zu exportieren:
Umfrage kopieren, alles, was nicht zum Problem gehört, löschen, den Rest schicken.






 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 1 day 7 hours ago by Joffm.

Please Log in to join the conversation.

More
1 day 5 hours ago - 1 day 4 hours ago #273946 by Joffm
So, hier zwei Beispiele.
Ich habe die Texte (außer dem Kino) mit Zahlwörtern versehen, damit man sehen kann, welche Vignette es ist.

Damit die Kontexte in zufälliger Reihenfolge erscheinen, ist eine Randomisierungsgruppe angelegt.
Außerdem gibt es nur eine Gruppe pro Vignette; aber der Inhalt der zweiten Gruppe erscheint erst, wenn die Fragen der ersten beantwortet wurden.
Man könnte sogar dann die beiden Fragen der ersten Teilgruppe ausblenden. Dann sieht es so aus, alls seien es zwei Gruppen.
Wie gesagt, ansonsten wird es ziemlich umständlich.
Dann müsste man die Kontextgruppen verdoppeln, teils sogar verdreifachen, und mit einer Zufallszahl die entsprechenden auswählen.
Ganz zu schweigen von der Arbeit der Umstrukturierung des Datensatzes vor der Analyse.  

Außerdem habe ich die Slider und die letzten Matrizen etwas geändert.
Da ich nicht weiß, wie Euer Theme (scheint so etwas wie "PFH Main" zu sein) Matrizen behandelt, habe ich dort noch nichts geändert.
Die Items sollten aber auf jeden Fall linksbündig sein.
Falls dies bei Euch nicht der Fall ist, genügt ein kleines css snippet (in den Fragetext - im Quellcode-Modus)
Code:
<style type="text/css">
/* Teilfragentexte linksbündig */
.ls-answers tbody .answertext {
    text-align: left;
}
</style>

 

ExpressionScript
 

File Attachment:

File Name: limesurvey...79_J.lss
File Size:397.02 KB
 

javascript

File Attachment:

File Name: limesurvey...53_J.lss
File Size:388 KB


Joffm

Mir ist gerade noch eingefallen, dass man die drei Sliderfragen ja auch zu einer einzigen machen könnte
 
Die Linksbündigkeit erreicht man hier mit
Code:
<style type="text/css">
  .ls-slider-item-row .control-label {
  text-align: left !important;
  }
</style>
 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 1 day 4 hours ago by Joffm.

Please Log in to join the conversation.

More
1 day 3 hours ago #273947 by tabithajoy
Hallo Joffm,

vielen Dank für deine unglaublich tolle Unterstützung. Ich habe mir beide Beispiele gerade angeschaut und bin wirklich total begeistert. Beide Beispiele sind unheimlich elegant und es ist fast ein bisschen schade um die Vignettentexte, denn die sind genial :) . Man merkt richtig, mit wie viel Spaß du dabei bist. Vielen Dank dafür!

Hättest du vielleicht noch einen letzten Hinweis für mich, wie ich es hinbekommen kann, dass die beiden ersten Fragen dann ausgeblendet werden, ohne dass die bereits gewählten Werte verloren gehen?

Please Log in to join the conversation.

More
1 day 20 minutes ago - 1 day 19 minutes ago #273948 by Joffm

Hättest du vielleicht noch einen letzten Hinweis für mich, wie ich es hinbekommen kann, dass die beiden ersten Fragen dann ausgeblendet werden, ohne dass die bereits gewählten Werte verloren gehen?

Habe ich - ich habe es schließlich selbst erwähnt.
Allerdings ist sie meiner Ansicht nach nicht ganz ohne Tücken.
Es ist ja so:
Wir müssen schauen, ob AQ2 beantwortet wurde. Dann werden AQ3-AQ8 eingeblendet; das ist trivial mit "Bedingung"
Es soll dann aber AQ1 und AQ2 ausgeblendet werden. Dies geht, wie Du ja auch erwähntest, nicht mit "Bedingung", da dann die eingegebenen Werte geöscht werden.
Daher müssen die beiden Fragen mit javascript versteckt werden.
Nur: wann muss der Event feuern, wann ist die Sliderfrage beantwortet? Wenn der Teilnehmer in einem Zug setzt, ist alles gut; er kann dann aber nnicht mehr nachjustieren.

Dazu wird in AQ2 (und natürlich auch in BQ2 und CQ2) folgendes kleine script eingefügt
Code:
<script type="text/javascript" charset="utf-8">
 
$(document).on('ready pjax:scriptcomplete',function(){
  var aq1='{AQ1.qid}';
  var thisQuestion = $('#question{QID}');
  $('input[type=text]', thisQuestion).on('slideStop', function(event) {
      $('#question'+aq1).hide();
      $('#question{QID}').hide();
  });
});
</script>
 

Eine andere Möglichkeit ist mir noch eingefallen.
Dies würde Deine erste Struktur mit den zwei Gruppen pro Vignette erhalten.
Allerdings würde es darauf beruhen, die Texte aller Vignetten und Kontexte dynamisch einzublenden.
D.h. Du müsstest die Daten total umstrukturieren.

Würde so aussehen.
Zufallszahl (z1) von 1-6 (für die sechs Reihenfolgen ABC, ACB, BAC, BCA, CAB, CBA)
Dann wäre der Text der ersten Doppelgruppe
{if(z1<3,
if(substr(Q0,0,1)=="1","Albert Ameise war im Kino und hat sich einen Abenteuerfilm angesehen. Danach dachte er noch eine Weile über den Film nach. Am meisten blieb ihm das Ende in Erinnerung.",if(substr(Q0,0,1)=="2","Albert Ameise war im Sommerurlaub in Zweibrücken und hat sich einen Sonnenbrand geholt.",if(substr(Q0,0,1)=="3","Albert Ameise war auf den Drei Zinnen.",if(substr(Q0,0,1)=="4","Albert Ameise tanzte im Viervierteltakt.",if(substr(Q0,0,1)=="5","Albert Ameise wohnt in der Fünffensterstraße.",if(substr(Q0,0,1)=="6","Albert Ameise trank gestern sechs Liter Wein.",if(substr(Q0,0,1)=="7","Albert Ameise war nach dem Rendezvous im siebten Himmel.","Albert Ameise bestieg alle Achttausender."))))))),
if(z1>4,
if(substr(Q0,2,1)=="1","Carlo Chinchilla war im Kino und hat sich einen Abenteuerfilm angesehen. Danach dachte er noch eine Weile über den Film nach. Am meisten blieb ihm das Ende in Erinnerung.",if(substr(Q0,2,1)=="2","Carlo Chinchilla war im Sommerurlaub in Zweibrücken und hat sich einen Sonnenbrand geholt.",if(substr(Q0,2,1)=="3","Carlo Chinchilla war auf den Drei Zinnen.",if(substr(Q0,2,1)=="4","Carlo Chinchilla tanzte im Viervierteltakt.",if(substr(Q0,2,1)=="5","Carlo Chinchilla wohnt in der Fünffensterstraße.",if(substr(Q0,2,1)=="6","Carlo Chinchilla trank gestern sechs Liter Wein.",if(substr(Q0,2,1)=="7","Carlo Chinchilla war nach dem Rendezvous im siebten Himmel.","Carlo Chinchilla bestieg alle Achttausender."))))))),
if(substr(Q0,1,1)=="1","Berta Biber war im Kino und hat sich einen Abenteuerfilm angesehen. Danach dachte er noch eine Weile über den Film nach. Am meisten blieb ihm das Ende in Erinnerung.",if(substr(Q0,1,1)=="2","Berta Biber war im Sommerurlaub in Zweibrücken und hat sich einen Sonnenbrand geholt.",if(substr(Q0,1,1)=="3","Berta Biber war auf den Drei Zinnen.",if(substr(Q0,1,1)=="4","Berta Biber tanzte im Viervierteltakt.",if(substr(Q0,1,1)=="5","Berta Biber wohnt in der Fünffensterstraße.",if(substr(Q0,1,1)=="6","Berta Biber trank gestern sechs Liter Wein.",if(substr(Q0,1,1)=="7","Berta Biber war nach dem Rendezvous im siebten Himmel.","Berta Biber bestieg alle Achttausender.")))))))))}


Bei der zweiten wird es etwas komplizierter:
{if(z1==3 OR z1==5,
if(substr(Q0,0,1)=="1","Albert Ameise war im Kino und hat sich einen Abenteuerfilm angesehen. Danach dachte er noch eine Weile über den Film nach. Am meisten blieb ihm das Ende in Erinnerung.",if(substr(Q0,0,1)=="2","Albert Ameise war im Sommerurlaub in Zweibrücken und hat sich einen Sonnenbrand geholt.",if(substr(Q0,0,1)=="3","Albert Ameise war auf den Drei Zinnen.",if(substr(Q0,0,1)=="4","Albert Ameise tanzte im Viervierteltakt.",if(substr(Q0,0,1)=="5","Albert Ameise wohnt in der Fünffensterstraße.",if(substr(Q0,0,1)=="6","Albert Ameise trank gestern sechs Liter Wein.",if(substr(Q0,0,1)=="7","Albert Ameise war nach dem Rendezvous im siebten Himmel.","Albert Ameise bestieg alle Achttausender."))))))),
if(z1==2 OR z1==4,
if(substr(Q0,2,1)=="1","Carlo Chinchilla war im Kino und hat sich einen Abenteuerfilm angesehen. Danach dachte er noch eine Weile über den Film nach. Am meisten blieb ihm das Ende in Erinnerung.",if(substr(Q0,2,1)=="2","Carlo Chinchilla war im Sommerurlaub in Zweibrücken und hat sich einen Sonnenbrand geholt.",if(substr(Q0,2,1)=="3","Carlo Chinchilla war auf den Drei Zinnen.",if(substr(Q0,2,1)=="4","Carlo Chinchilla tanzte im Viervierteltakt.",if(substr(Q0,2,1)=="5","Carlo Chinchilla wohnt in der Fünffensterstraße.",if(substr(Q0,2,1)=="6","Carlo Chinchilla trank gestern sechs Liter Wein.",if(substr(Q0,2,1)=="7","Carlo Chinchilla war nach dem Rendezvous im siebten Himmel.","Carlo Chinchilla bestieg alle Achttausender."))))))),
if(substr(Q0,1,1)=="1","Berta Biber war im Kino und hat sich einen Abenteuerfilm angesehen. Danach dachte er noch eine Weile über den Film nach. Am meisten blieb ihm das Ende in Erinnerung.",if(substr(Q0,1,1)=="2","Berta Biber war im Sommerurlaub in Zweibrücken und hat sich einen Sonnenbrand geholt.",if(substr(Q0,1,1)=="3","Berta Biber war auf den Drei Zinnen.",if(substr(Q0,1,1)=="4","Berta Biber tanzte im Viervierteltakt.",if(substr(Q0,1,1)=="5","Berta Biber wohnt in der Fünffensterstraße.",if(substr(Q0,1,1)=="6","Berta Biber trank gestern sechs Liter Wein.",if(substr(Q0,1,1)=="7","Berta Biber war nach dem Rendezvous im siebten Himmel.","Berta Biber bestieg alle Achttausender.")))))))))}


Analog die dritte:
{if(z1==4 OR z1==6,
if(substr(Q0,0,1)=="1","Albert Ameise war im Kino und hat sich einen Abenteuerfilm angesehen. Danach dachte er noch eine Weile über den Film nach. Am meisten blieb ihm das Ende in Erinnerung.",if(substr(Q0,0,1)=="2","Albert Ameise war im Sommerurlaub in Zweibrücken und hat sich einen Sonnenbrand geholt.",if(substr(Q0,0,1)=="3","Albert Ameise war auf den Drei Zinnen.",if(substr(Q0,0,1)=="4","Albert Ameise tanzte im Viervierteltakt.",if(substr(Q0,0,1)=="5","Albert Ameise wohnt in der Fünffensterstraße.",if(substr(Q0,0,1)=="6","Albert Ameise trank gestern sechs Liter Wein.",if(substr(Q0,0,1)=="7","Albert Ameise war nach dem Rendezvous im siebten Himmel.","Albert Ameise bestieg alle Achttausender."))))))),
if(z1==1 OR z1==3,
if(substr(Q0,2,1)=="1","Carlo Chinchilla war im Kino und hat sich einen Abenteuerfilm angesehen. Danach dachte er noch eine Weile über den Film nach. Am meisten blieb ihm das Ende in Erinnerung.",if(substr(Q0,2,1)=="2","Carlo Chinchilla war im Sommerurlaub in Zweibrücken und hat sich einen Sonnenbrand geholt.",if(substr(Q0,2,1)=="3","Carlo Chinchilla war auf den Drei Zinnen.",if(substr(Q0,2,1)=="4","Carlo Chinchilla tanzte im Viervierteltakt.",if(substr(Q0,2,1)=="5","Carlo Chinchilla wohnt in der Fünffensterstraße.",if(substr(Q0,2,1)=="6","Carlo Chinchilla trank gestern sechs Liter Wein.",if(substr(Q0,2,1)=="7","Carlo Chinchilla war nach dem Rendezvous im siebten Himmel.","Carlo Chinchilla bestieg alle Achttausender."))))))),
if(substr(Q0,1,1)=="1","Berta Biber war im Kino und hat sich einen Abenteuerfilm angesehen. Danach dachte er noch eine Weile über den Film nach. Am meisten blieb ihm das Ende in Erinnerung.",if(substr(Q0,1,1)=="2","Berta Biber war im Sommerurlaub in Zweibrücken und hat sich einen Sonnenbrand geholt.",if(substr(Q0,1,1)=="3","Berta Biber war auf den Drei Zinnen.",if(substr(Q0,1,1)=="4","Berta Biber tanzte im Viervierteltakt.",if(substr(Q0,1,1)=="5","Berta Biber wohnt in der Fünffensterstraße.",if(substr(Q0,1,1)=="6","Berta Biber trank gestern sechs Liter Wein.",if(substr(Q0,1,1)=="7","Berta Biber war nach dem Rendezvous im siebten Himmel.","Berta Biber bestieg alle Achttausender.")))))))))}


Das bedeutet, dass in der Antworttabelle in jeder Spalte die Daten aller drei Konzepte stehen können und Du mithilfe der Zufallszahl z1 und dem String in Q0 dies zunächst wieder auseinanderklamüsern musst.

Ich halte es für etwas "überambitioniert".

Joffm

 

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

Please Log in to join the conversation.

More
14 hours 1 minute ago #273949 by tabithajoy
Guten Morgen :),

vielen Dank für das Script! 

Für den Slider funktioniert das Script auch super. Ich habe jetzt allerdings noch eine kleine Änderung vorgenommen und dafür eine zusätzliche Frage vom Typ Liste (Optionsfelder) eingefügt. Dort frage ich, ob die bisherigen Angaben so übernommen und mit der weiteren Eingrenzung fortgefahren werden soll - das kommt sonst bei dem Slider so überraschend. Diese Frage hat nur eine einzige Antwortoption mit dem Code 1 (Angaben übernehmen und fortfahren).

Ich habe schon selbst versucht den Code etwas anzupassen, aber dazu verstehe ich einfach zu wenig von JavaScript. Könntest du mir sagen, wie ich das Script darauf anpassen kann, dass beim Anklicken dieser Option die beiden vorherigen Fragen AQ1 und AQ2 sowie die aktuelle Frage ausgeblendet werden — aber nur dann, wenn AQ1 und AQ2 auch tatsächlich beantwortet wurden? Ansonsten müsste vielleicht eine kurze Mitteilung erscheinen und der Klick nicht angenommen werden. Grundsätzlich wird man die Fragen zwar normalerweise in der vorgesehenen Reihenfolge durchgehen, aber beim eigenen Ausprobieren ist mir aufgefallen, dass es auch weiter geht, obwohl ich eine Antwort gar nicht gegeben hatte.

Vielen Dank dir. Und sorry, dass ich jetzt nochmal damit ankomme.

Please Log in to join the conversation.

More
12 hours 9 minutes ago - 10 hours 15 minutes ago #273950 by Joffm
Nun gut.
Ich würde dann zumindest einen bootstrap-button benutzen.
Damit die beiden Fragen auch beantwortet sind, würde ich ihn erst einblenden, wenn sie eben beantwortet sind (!is_empty(AQ1) and !is_empty(AQ2_1))
Und ein solcher Button hat natürlich eine andere Klasse als ein Eingabefeld (das ist der Slider im Grunde ja)

Also füge die Eigenschaft ".qid" der zweiten Frage ebenfalls als Variable hinzu, die Variable {QID} bezieht sich ja immer auf die aktuelle Frage, und das ist jetzt der Button.
Und der Aufruf der Funktion ändert sich dann zu
Code:
  $('.button-item', thisQuestion).on('click', function(event) {




Bei jemandem, der solchen Quatsch macht, bin ich mir zu 100% sicher.


Dann das Übliche.


Probiere es einmal aus.

Bei Problemen, lss Export.

Bis dann
Joffm

P.S. Und die Bedingung für die folgenden Fragen sollten dann auch auf den Button gesetzt werden, so "QButton==1"

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 10 hours 15 minutes ago by Joffm.
The following user(s) said Thank You: tabithajoy

Please Log in to join the conversation.

More
9 hours 37 minutes ago #273951 by tabithajoy
Es hat geklappt und funktioniert super. Nochmals vielen Dank für deine Unterstützung und hab einen schönen restlichen Sonntag :)

Please Log in to join the conversation.

More
7 hours 31 minutes ago #273952 by Joffm
Es wäre auch sicher eine gute Idee, den "Zurück"- und "Weiter"-Button zu verstecken, wenn nur die beiden ersten Fragen sichtbar sind.
Diese werden erst angezeigt, wenn der "Speichern und Weiter"-Button geklickt wird und die restlichen Fragen sichtbar werden

Dann sähe das script so aus.
Code:
<script type="text/javascript" charset="utf-8">
$(document).on('ready pjax:scriptcomplete',function(){
  var aq1='{AQ1.qid}';
  var aq2='{AQ2.qid}';
  var thisQuestion = $('#question{QID}');
  $('#ls-button-submit').hide();
  $('#ls-button-previous').hide();
  $('.button-item', thisQuestion).on('click', function(event) {
      $('#question'+aq1).hide();
      $('#question'+aq2).hide();
      $('#question{QID}').hide();
      $('#ls-button-submit').show();
      $('#ls-button-previous').show();
  });
});
</script>

Und wenn Du gar nichts anderes zu tun hast, kannst Du Dir einmal meine anderen Tutorials anschauen.
Es geht dabei meist um Darstellung von Fragen. Ein Teilnehmer soll ja immer das Gefühl haben, dass man sich Mühe gegeben hat, die Umfrage möglichst benutzerfreundlich und ansprechend anzulegen.
Ich gebe hier die direkten Links, da die Threads dazu schon sehr weit nach hinten gewandert sind hier im deutschen Teil.
Tutorial 1: Matrizen
Tutorial 2: Mehrfachnennungen, Slider, DropDowns
Tutorial 3: Gimmicks

Gerade, was die Itembatterien am Schluss betrifft, solltest Du noch ein bisschen mehr Feedback geben.
Du weißt sicher, dass solche hingeknallten Listen der häufigste Grund sind, die Umfrage abzubrechen.
Jeder Teilnehmer sieht ja anscheinend zwei. Das weiß er aber nicht. Er könnte also denken, nachdem die zweite Itembatterie aufploppt, dass dann noch weitere folgen.
Dann heißt es oft "Danke, tschüss".
Oder die Teilnehmer mutieren zu
  • Speedern (schnell durchknallen),
  • Justifiern (Links, Rechts, Mitte)
  • Happy Clickern (mal klick ich hier, mal klick ich da, heissa und juchheirassa). So einer bin ich übrigens.
Daher sollten immer Zwischentexte erscheinen mit Feedback über den Fortschritt, Hinweise auf das, was folgt.
Z.B. vor der zweitern Itembatterie darauf hinweisen, dass sie nun noch einmal, aber auch nur noch einmal erscheint, aber unter einem anderen Gesichtspunkt.

Es gibt ein lesenswertes pdf (gezippt) von einem früheren aktiven Mitglied der Community
Surveyfriendly

So, das war's für heute. Irgendwie kommt immer mal der Markt- und Sozialforscher in mir zum Vorschein.

Viel Erfolg
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