0 votes
in SoSci Survey (dt.) by s270767 (120 points)

Hallöchen,

hier nun der aktuelle Code und die noch offenen Fragen:

Code auf der Seite vor den Vignetten (ZG02 ist die Zufallsvariable, die bestimmt, ob der Proband zuerst adherence oder violation sieht):

$gender = value('DE02');
$zahl = value('ZG02');

if ($zahl == 1 and $gender == 1) {
$values = value('ZG08', 'csv');
putList('ZG07', $values);
$pages = array_slice($values, 0, 4);
setPageOrder($pages, 'I2');
}

if ($zahl == 1 and $gender == 2) {
$values = value('ZG09', 'csv');
putList('ZG07', $values);
$pages = array_slice($values, 0, 4);
setPageOrder($pages, 'I2');
}

if ($zahl == 2 and $gender == 1) {
$values = value('ZG11', 'csv');
putList('ZG07', $values);
$pages = array_slice($values, 0, 4);
setPageOrder($pages, 'I2');
}

if ($zahl == 2 and $gender == 2) {
$values = value('ZG12', 'csv');
putList('ZG07', $values);
$pages = array_slice($values, 0, 4);
setPageOrder($pages, 'I2');
}

if ($zahl == 1 and $gender == 3) {
$values = value('ZG06', 'csv');
putList('ZG07', $values);
$pages = array_slice($values, 0, 4);
setPageOrder($pages, 'I2');
}

if ($zahl == 2 and $gender == 3) {
$values = value('ZG10', 'csv');
putList('ZG07', $values);
$pages = array_slice($values, 0, 4);
setPageOrder($pages, 'I2');
}

Code auf der jeweiligen Vignettenseite:

$values = valueList('ZG07');
$pages = array_slice($values, 0, 4);
$indices = array_flip($pages);
$index = $indices['FA1'];

$bild = $values[4 + $index];
$video = $values[8 + $index];

Aktuelles Problem: Diese Fehlermeldung erscheint:
Im PHP-Code trat ein Fehler auf.

Fehler im Fragebogen: Unsupported operand types: int + string
Zeile: 8

PHP-Code

005 $indices = array_flip($pages);
006 $index = $indices['FA1'];
007
008 $bild = $values[4 + $index];
009 $video = $values[8 + $index];

Danke im Voraus!

1 Answer

0 votes
by SoSci Survey (328k points)

Fehler im Fragebogen: Unsupported operand types: int + string
Zeile: 8

Damit will Ihnen PHP sagen, dass Sie die Zahl 4 nicht zu einem Text addieren können, hier

4 + $index

Kontrollieren Sie am besten mal mit debug(), was Sie in den Variablen genau stehen haben.

$values = valueList('ZG07');
$pages = array_slice($values, 0, 4);
$indices = array_flip($pages);
$index = $indices['FA1'];
debug($values);
debug($pages);
debug($indices);
debug($index);
by s270767 (120 points)
Ja, das hatte ich mir erschlossen, aber weiß nicht, wie ich es anders machen könnte, da ich damals auch ihrer Anleitung gefolgt bin.

Hinweis (Seite 16)
Debug-Information für $values:
ZG07_01:FA2, ZG07_02:FV2, ZG07_03:MA2, ZG07_04:MV2, ZG07_05:036_o_f_n_b.jpg, ZG07_06:021_o_f_n_a.jpg, ZG07_07:102_o_m_n_a.jpg, ZG07_08:166_o_m_n_a.jpg, ZG07_09:fvoice1FA2.mp3, ZG07_10:fvoice2FV2.mp3, ZG07_11:mvoice2MA2.mp3, ZG07_12:mvoice1MV2.mp3
Hinweis (Seite 16)
Debug-Information für $pages:
ZG07_01:FA2, ZG07_02:FV2, ZG07_03:MA2, ZG07_04:MV2
Hinweis (Seite 16)
Debug-Information für $indices:
FA2:ZG07_01, FV2:ZG07_02, MA2:ZG07_03, MV2:ZG07_04
Hinweis (Seite 16)
Debug-Information für $index:
$index = ZG07_01 (string)
value('ZG07_01') = FA2
by SoSci Survey (328k points)
Okay, dass man den Text "ZG07_01" nicht mit 4 zusammenzählen kann, da sind wir mit der Fehlermeldung schonmal einer Meinung.

Ändern Sie bitte die Zeile

$values = valueList('ZG07');

einmal in

$values = array_values(valueList('ZG07'));

Ich vergessen immer, dass valueList() ein assoziatives Array mit den Variablennamen als Schlüsseln liefert und kein indiziertes Array mit Zahlen ab 0 als Schlüssel.
by s270767 (120 points)
edited by s270767
Danke! Funktioniert alles super und den Code zur Anzeige auf der Seite habe ich jetzt selbst noch basteln können.

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

...