0 votes
in SoSci Survey (dt.) by s185028 (135 points)
edited by SoSci Survey

Es wird folgender Fehler im Fragebogen angezeigt:
Im PHP-Code trat ein Fehler auf.
Fehler im Fragebogen: Undefined offset: -4
Zeile: 37

Dieser erscheint nur sehr selten. Ich habe mich schon oft durchgeklickt, aber ich weiß nicht genau wie szu dieser Fehlermeldung kommt und sie kommt auch nur so alle zehn bis 15 Mal auf. Hier der Code von der Seite:

// Das isset() vermeidet, dass die Rotation etwa wg. fehlenden Antworten verändert wird

 

if (!isset($itemsKW01)) {
  // Alle Items der Frage KN01 auflisten
  $itemsKW01 = getItems('KW01', 'all');

 

  // Liste Mischen
  shuffle($itemsKW01);

 

  // Die Liste in Teillisten à 5 Items teilen
  $itemsKW01 = array_chunk($itemsKW01, 5);

 

  // Die Variable für andere Seiten verfügbar machen
  registerVariable($itemsKW01);
}
 
// Die Items über mehrere Seiten verteilt anzeigen
$i = loopPage(count($itemsKW01));
if (!isset($block1start)) {
  $block1start = loopIndex();
  registerVariable($block1start);
}
$i = loopIndex() - $block1start;


//Frage anzeigen, mit KW02 kombinieren
question('KW01', $itemsKW01[$i], 'combine=KW02', 'gap=line');

1 Answer

0 votes
by SoSci Survey (306k points)

Die Fehlermeldung bezieht sich warhscheinlich auf diese Zeile:

question('KW01', $itemsKW01[$i], 'combine=KW02', 'gap=line');

Sie besagt, dass Sie den Eintrag mit dem Index -4 ($i) in dem Array $itemsKW01 aufrufen möchten. Wo kommt die -4 her? Womöglich hierher:

$i = loopIndex() - $block1start;

Und wie kann $block1start kleiner sein als loopIndex()? Ich weiß es nicht. Die einfachste Erklärung wäre, dass Sie auf einer früheren Seite schonmal registerVariable($block1start) verwenden. Dann ist die Variable wegen des isset() hier nämlich nicht erneut gesetzt.

Es gibt aber auch viele andere Erklärungen. Am besten ergänzen Sie ein paar debug(), versuchen das Problem zu replizieren, und verfolgen dann aufmerksam die Debug-Information.

$i = loopIndex() - $block1start;
debug(loopIndex());
debug($block1start);
debug($i);

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

...