0 votes
in SoSci Survey (dt.) by s259456 (110 points)

Liebes Support-Team!

Ich möchte die Antworten aus einer Frage mit offener Nennung als Items in einer Folgefrage (Mehrfachauswahl-Matrix). Natürlich sollen in der Folgefrage nur so viele Items vorkommen, wie Antworten bei der offenen Nennung gegeben wurden. Ich habe mich an diese Anleitung gehalten: https://www.soscisurvey.de/help/doku.php/de:create:transfer-responses#antworten_in_einer_folgefrage_anzeigen

Das ist mein PHP-Code:

question('PI01');  // Erhebung des sprachlichen Hintergrunds

$frage = 'PI01';
$items = array();
for ($i=1; $i<=10; $i++) {
  $itemID = id($frage,$i);
  $antwort = value($itemID);
  if (trim($antwort) != '') {
    replace('%text'.$i.'%', $antwort);
    $items[] = $i;
  }
}
// Folgefrage
if (count($items) > 0) {
  question('PI02', $items);
}

Für die Items in der Folgefrage PI02 habe ich die Platzhalter %text1% bis %text10% eingegeben.
Ich bekomme nun immer folgende Fehlermeldung, wenn ich die Folgefrage ausprobiere:

Im PHP-Code trat ein Fehler auf.
Fehler im Fragebogen: Undefined variable $items
Zeile: 4

PHP-Code

001 namespace s2survey\questionnaire\environment;
002 
003  
004 if (count($items) > 0) {
005   question('PI02', $items);
006 }
007 return 'ok';
Fehler im Fragebogen: count(): Argument #1 ($value) must be of type Countable|array, null given
Zeile: 4

PHP-Code

001 namespace s2survey\questionnaire\environment;
002 
003  
004 if (count($items) > 0) {
005   question('PI02', $items);
006 }
007 return 'ok';

Irgendwie liegt der Fehler wohl in der Definition von $items. Ich komme aber einfach nicht weiter... Vielen Dank für die Hilfe!!

1 Answer

0 votes
by SoSci Survey (305k points)

Fehler im Fragebogen: count(): Argument #1 ($value) must be of type Countable|array, null given

Diese Fehlermeldung besagt, dass in der Variable $items kein Array liegt, in dieser Zeile:

count($items)

Wenn ich die Fehlermeldung richtig interpretiere, dann haben Sie den PHP-Code nicht in ein Element "PHP-Code" geschrieben, sondern den Code auf mehrere solche Elemente aufgeteilt. Das funktioniert aber nicht, weil die Variable $items nicht zwischen den PHP-Code-Elementen übertragen wird - an der Stelle ist sie also leer.

Packen Sie bitte den gesamten PHP-Code ab $frage = 'PI01' in ein PHP-Code-Element. Dieses darf frühestens auf der Seite nach der Frage PI01 stehen, also nicht auf derselben Seite.

by s259456 (110 points)
Vielen Dank! Jetzt funktioniert es.

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

...