0 votes
in SoSci Survey (dt.) by s109993 (10.2k points)

Ich benutze die Navigationsleiste (https://www.soscisurvey.de/help/doku.php/de:create:navigation?s[]=*checkqst*) und das funktioniert auch wunderbar mit normalen Auswahlfragen und Textfeldern. Jetzt gibt es allerdings einige Mehrfachskalen- wie kann ich hier den Check programmieren?
Das ist die normale vorgehensweise die ich benutze,- wie würde das für den oben genannten Fragetyp aussehen?

function navigation() {
    
    // Completion check
        $cGeneral = (count(array_merge(
        checkQst('A002', [1]),
        checkQst('A003', [1]),
				checkQst('A004', [1]),
				checkItem('A005', 'A005_01'),
				checkQst('A006', [1]),
				checkQst('A007', [1]),
				checkQst('A008', [1]),
				checkItem('A009', 'A009_01'),
 				checkItem('A011', 'A011_01'), 
 				checkQst('A014', [1]), 
 				checkQst('A015', [1]),     
        checkQst('A017', [1,2,3,4,5,6]),
        checkItem('A018', 'A018_01'),
        checkQst('A019', [1]),
        checkQst('A021', [1,2]),
        checkItem('A023', 'A023_01'),
        checkQst('A024', [1]),
        checkItem('A026', 'A026_01'),
        checkItem('A029', 'A029_01'),
        checkItem('A034', 'A034_01')
   )) === 0	);
by SoSci Survey (305k points)
> wie kann ich hier den Check programmieren?

Wie ist denn Ihre Kriterium, dass eine Mehrfachauswahl vollständig beantwortet wurde?
by s109993 (10.2k points)
Gute Frage, hätte ich natürlich dazuschreiben müssen. Mindestens 1 Kreuz pro Zeile (Item) gesetzt. Wenn ich eine Idee habe, wie das funktioniert, kann ich das denke ich selber später ändern. Nur stehe ich da leider gerade etwas auf dem Schlauch.

1 Answer

0 votes
by SoSci Survey (305k points)

Mindestens 1 Kreuz pro Zeile (Item) gesetzt.

Da können wir gut mit getItems() arbeiten, z.B.

function checkQstMC($qID) {
  $selected = getItems($qID, '==', 2);
  $fail = [];
  if (count($selected) < 1) {
    $fail[] = getItemtext($qID, 'question');
  }
  return $fail;
}
by SoSci Survey (305k points)
Okay ... und wann gilt eine Mehrfachauswahlmatrix als vollständig ausgefüllt? Ein Kreuzchen pro Zeile oder pro Spalte?
by s109993 (10.2k points)
hm, nach erneutem anschauen der Matrix ganz nicht so einfach zu beantworten (Aufgrund der Fragestellung). Ich denke am besten wäre es, wenn ein Kästchen in der Mehrfachauswahlmatrix ausgewählt wurde, dann gilt es schon als vollständig ausgefüllt (also egal wo in der Mehrfachmatrix). Es geht ja nur darum Teilnehmer ein Indikator zu geben, ob eine Frage vergessen wurde.

Wäre das überhaupt möglich?
by SoSci Survey (305k points)
> Wäre das überhaupt möglich?

Im "schlimmsten" Falls muss man mit zwei FOR-Schleifen die Zeilen und Spalten durchsuchen, solange, bis man ein Kreuzchen gefunden hat (oder eben bis zum Ende). Wobei es schon dadurch einfacher wird, dass SoSci in den _CN-Variablen die Anzahl der Kreuzchen pro Zeile abzählt.

Ich muss nochmal kurz prüfen, wie sich die Mehrfachauswahlmatrix mit den Funktionen getItems() und id() verträgt, und melde mich nochmal, wie das aussehen könnte.
by SoSci Survey (305k points)
Okay, wir können einfach getItems() verwenden - die Funktion verwendet direkt die Anzahl der Kreuzchen pro Zeile.

function checkQstMatrix($qID) {
  $anySelected = getItems($qID, '>', 0);
  $fail = [];
  if (count($anySelected) == 0) {
    $fail[] = getItemtext($qID, 'question');
  }
  return $fail;
}
by s109993 (10.2k points)
Ja, das funktioniert, vielen Dank und Entschuldigen Sie die Verwirrung am Anfang! Jetzt hoffe ich mal, dass sich der Kunde damit zufrieden gibt :)

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...