Guten Tag,
ich benötige Hilfe bei der Umsetzung einer Idee zu dem oben genannten Thema/Fragebogen. Und zwar geht es um eine Umfrage, in welcher zunächst mehrere Ereignisse abgefragt werden, ob diese in den letzten 4 Wochen stattgefunden haben. Hier kann die Person entweder Ja oder Nein ankreuzen. In einer darauffolgenden Seite werden zunächst die Gruppen (s.o.) festgelegt, in welchen die Ereignisse nach Häufigkeit gruppiert werden. Daraufhin soll ein Ereignis ausgewählt werden, bei welchem die Person "Ja" angekreuzt hat, um hier mit einer weiteren Skala detailliertere Fragen zu diesem Ergebnis zu stellen. Das Ereignis wird wie folgt ausgewählt: Es wird von der seltensten Kategorie bis hin zu häufigsten Kategorie in einem PHP Code geschaut, ob die Person bei einer Frage "Ja" angekreuzt hat. Das Ereignis, welches am "seltensten" auftritt und mit Ja angekreuzt wurde, wird dementsprechend in einen Platzhalter eingefügt, um hier detailliertere Fragen zu stellen. Der PHP-Code sieht folgendermaßen aus:
// Gruppe 1 (am seltensten) - Gruppe 5 (am häufigsten)
// 5 Listen anlegen und Items innerhalb randomisieren
// nacheinander Listen abfragen ob "Ja"
// Wenn ja -> Abspeichern in %event% und Weiter auf Seite 'PH'
// Wenn nirgends "ja" -> Seite "ER"
// UMSETZUNG
// Gruppe 1: am seltensten
// Gruppe 4: am häufigsten
// Alle Items der Gruppen auflisten
$gruppe1 = array('LE02_02', 'LE03_04', 'LE04_01', 'LE02_04');
shuffle($gruppe1);
$gruppe2 = array('LE05_02', 'LE06_04', 'LE10_01', 'LE05_01',
'LE02_01','LE03_02' ,'LE03_01','LE08_01');
shuffle($gruppe2);
$gruppe3 = array('LE09_01', 'LE04_03', 'LE03_03', 'LE04_02', 'LE05_03',
'LE02_03','LE06_03' ,'LE01_01','LE06_05','LE06_02');
shuffle($gruppe3);
$gruppe4 = array('LE04_04', 'LE06_01');
shuffle($gruppe4);
// einzelne Listen zusammenführen
$liste = array_merge($gruppe1, $gruppe2, $gruppe3, $gruppe4);
// Präsentierte Itemreihenfolge zu String konvertieren
$liste_string = implode("+", $liste);
// Präsentierte Itemreihenfolge in Datensatz ablegen
put("item_order_liste", $liste_string);
// FOR-Schleife (nacheinander prüfen, ob "Ja" angekreuzt wurde
$item = -1;
foreach ($liste as $varID) {
$antwort = value($varID);
if ($antwort == 1) {
$item = $varID;
break;
}
}
if ($item < 0) {
// Fehlermeldung zeigen, nichts ausgewählt
}
$frage = substr($item, 0, 4);
$itemID = substr($item, 5);
debug($frage);
debug($itemID);
$beschreibung = getItemtext($frage, $itemID);
replace('%ereignis%', $beschreibung);
// Events in Kurztitel ändern
if($beschreibung == 'Ich bin krank geworden.'){
replace('%ereignis%','Krankheit');
} elseif($beschreibung == 'Ich habe eine ernste medizinische Diagnose erhalten.'){
replace('%ereignis%','medizinische Diagnose');
} elseif($beschreibung == 'Ich habe eine medizinische Behandlung oder Psychotherapie begonnen.'){
replace('%ereignis%','medizinische Behandlung oder Psychotherapie');
} elseif($beschreibung == 'Ich habe aufgehört zu rauchen.'){
replace('%ereignis%','mit dem Rauchen aufgehört');
} elseif($beschreibung == 'Ich habe ein Studium oder eine Ausbildung angefangen.'){
replace('%ereignis%','Studiums- oder Ausbildungsbeginn');
} elseif($beschreibung == 'Ich habe das Studienfach, die Universität oder die Ausbildung gewechselt.'){
replace('%ereignis%','Studiums- oder Ausbildungswechsel');
} elseif($beschreibung == 'Ich habe eine wichtige Prüfung bestanden.'){
replace('%ereignis%','Prüfung bestanden');
} elseif($beschreibung == 'Ich bin durch eine wichtige Prüfung gefallen.'){
replace('%ereignis%','Prüfung nicht bestanden');
} elseif($beschreibung == 'Ich habe einen neuen Job angefangen.'){
replace('%ereignis%','neuer Job');
} elseif($beschreibung == 'Ich bin befördert worden.'){
replace('%ereignis%','Beförderung');
} elseif($beschreibung == 'Mein Arbeitsplatz und meine Aufgaben haben sich maßgeblich verändert.'){
replace('%ereignis%','Veränderung am Arbeitsplatz');
} elseif($beschreibung == 'Ich habe meinen Job verloren.'){
replace('%ereignis%','Jobverlust');
} elseif($beschreibung == 'Ich oder meine Partnerin sind schwanger geworden.'){
replace('%ereignis%','Schwangerschaft');
} elseif($beschreibung == 'Ich habe erfahren, dass eine Person aus meinem engen Freundeskreis oder ein Familienmitglied schwer krank ist.'){
replace('%ereignis%','Erkrankung von Freund:in oder Familienmitglied');
} elseif($beschreibung == 'Eine Person aus meinem engen Freundeskreis oder ein Familienmitglied ist gestorben.'){
replace('%ereignis%','Tod von Freund:in oder Familienmitglied');
} elseif($beschreibung == 'Ich habe Freund:innen oder Familie besucht, die ich selten sehe.'){
replace('%ereignis%','Besuch bei Freund:innen oder Familie');
} elseif($beschreibung == 'Ich bin in einer neuen (romantischen) Beziehung.'){
replace('%ereignis%','neue Beziehung');
} elseif($beschreibung == 'Mein:e Partner:in und ich haben uns getrennt.'){
replace('%ereignis%','Trennung');
} elseif($beschreibung == 'Mein:e Partner:in und ich hatten einen ernsten Streit.'){
replace('%ereignis%','Streit in der Beziehung');
} elseif($beschreibung == 'Ich habe Urlaub gemacht.'){
replace('%ereignis%','Urlaub');
} elseif($beschreibung == 'Ich habe ein wichtiges Fest gefeiert (z.B. runder Geburtstag, religiöser Festtag, Jubiläum etc.).'){
replace('%ereignis%','Fest');
} elseif($beschreibung == 'Meine finanzielle Situation hat sich bedeutend verschlechtert.'){
replace('%ereignis%','Verschlechterung der Finanzen');
} elseif($beschreibung == 'Ich hatte einen Unfall (z.B. einen Verkehrsunfall, Haushaltsunfall oder schweren Sturz).'){
replace('%ereignis%','Unfall');
} elseif($beschreibung == 'Ich habe etwas sehr Besonderes geleistet.'){
replace('%ereignis%','besondere Leistung');
}
debug($beschreibung);
debug('%ereignis%');
// Event speichern
put('VC01_19', $beschreibung);
Nun ist das ganze ja ziemlich deterministisch. Wenn eine Person LE03_01 sowie LE03_03 mit "ja" beantwortet hat, wird jedes mal LE03_01 ausgewählt und niemals LE03_03, da letzteres in einer häufigeren Gruppe ist. Nun hängen die beiden Items ziemlich stark miteinander zusammen (LE03_01: Ich habe einen neuen Job angefangen. LE03_03: Mein Arbeitsplatz und meine Aufgaben haben sich maßgeblich verändert.) sodass häufig beides mit "Ja" beantwortet wird.
Mein Anliegen ist nun folgendes: Ich würde gerne den php code so umschreiben, dass nicht JEDES Mal, das seltenere Ereignis für den Platzhalter ausgewählt wird, sondern es nur zu einer gewissen Wahrscheinlichkeit eher ausgewählt wird. D.h. ist seltenen Fällen soll auch das andere Ereignis LE03_03 ausgewählt werden. Ist solch eine Umsetzung irgendwie möglich?
Vielen Dank schonmal für Ihre Hilfe!