0 votes
in SoSci Survey (dt.) by s088239 (170 points)

Hallo zusammen,

auf Seite 1 frage ich Werte zu US01 ab.

1) Wenn Werte von US01_02 und US01_04 über 1 liegen, soll eine Auswahl mittels Urnen erfolgen. Die Urne wurde bereits angelegt.
2) Wenn die Werte von US01_02 oder US01_04 über 1 liegen, soll US01_02 den Wert $produkt = 2 und US01_04 den Wert $produkt = 1 speichern.
3) Die interne Variable IV02_01 soll speichern, welche Zahl $produkt enthält (inklusive des Wertes aus der Urne)
4) In einem weiteren Schritt soll $self über eine Urne gelost werden. Diese Werte werden dann in IV03 abgespeichert.

Für den ersten Teil des Codes bekomme ich keine Fehlermeldung:

if ((value('US01_02') > 1) and (value('US01_04') > 1)) // Backofenreiniger und Rasierschaum
{
  // Urne Produkt
$produkt = urnDraw('produkt', 'IV01');
} 
elseif (value('US01_02') > 1) { //Backofenreiniger
  $produkt = 2;
} 
elseif (value('US01_04') > 1) { //Rasierschaum
  $produkt = 1;
} else { 
goToPage('end');
}
// Die Ziehung in einer internen Variable ablegen
put('IV02_01', $produkt);

//Urne Self

$self = urnDraw('self', 'IV03');

Im Anschluss sollen die Kombinationen aus den internen Variablen genutzt werden, um gezielt Fragen zu stellen. Bei diesem Code bekomme ich folgende Fehlermeldung:

Im PHP-Code trat ein Fehler auf.
Fehler im Fragebogen: syntax error, unexpected 'and' (T_LOGICAL_AND)
Zeile: 1

PHP-Code

001 if (value('IV02_01') == 1) and (value('IV04_01') == 1){
002 question('PF01');
003 }
004 if (value('IV02_01') == 2) and (value('IV04_01') == 1){


if (value('IV02_01') == 1) and (value('IV03_01') == 1){
  question('PF01');
}
if (value('IV02_01') == 2) and (value('IV03_01') == 1){
  question('PF02');
}
if (value('IV02_01') == 1) and (value('IV03_01') == 2){
  question('PF03');
}
if (value('IV02_01') == 2) and (value('IV03_01') == 2){
  question('PF04');
}

Vielen herzlichen Dank für die Hilfe,
Carolina

1 Answer

0 votes
by SoSci Survey (327k points)

Für den ersten Teil des Codes bekomme ich keine Fehlermeldung:

$produkt = urnDraw('produkt', 'IV01');

Dies hier wird nicht funktionieren. Die Funktion urnDraw() gibt zurück, wie häufig die Urne bereits geleert wurde. Ich denke, Sie möchten stattdessen das hier:

urnDraw('produkt', 'IV01');
$produkt = value('IV01_01');

Fehler im Fragebogen: syntax error, unexpected 'and' (T_LOGICAL_AND)

Auf Deutsch übersetzt: Beim Zerlegen der Klammern etc. war PHP irgendwo verwirrt. Die Ursache ist, dass die Bebingung hinter dem IF immer in Klammern stehen muss. Hier ist das and (damit ist mit dem "T_LOGICAL_AND" gemeint) aber ohne Klammer:

if (value('IV02_01') == 1) and (value('IV03_01') == 1)

Die Lösung besteht in ... genau ... noch mehr Klammern :)

if ((value('IV02_01') == 1) and (value('IV03_01') == 1))

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

...