0 votes
in Datenauswertung by s248429 (160 points)

Kann mir jemand bei dieser Fehlermeldung helfen? :(

Im PHP-Code trat ein Fehler auf.
Fehler im Fragebogen: Befehl oder String (Text) nicht abgeschlossen
Hinter einem Befehl wie z.B. question() steht kein Strichpunkt oder
- ein String (Text in Anführungszeichen) ist nicht abgeschlossen oder
- im String selbst kommt ein Anführungszeichen vor, z.B. html('Mach's besser!');
- in diesem Fall stellen Sie dem Anführungszeichen einen Backslash (l) voran.
- Möglicherweise stimmen die öffnenden und schließenden geschweiften Klammern für Anweisungsblöcke auch nicht überein.

PHP-Code
001 namespaces2survey\questionnaire\lenvironment;
002
003 $fragen = ['LT08', 'LT09', 'LT10', 'LT11', 'LT12'1;
004 'LT08' => 3
005 'LT09' => 1
006 'LT10' => 4
007 'LT11 '=> 2

1 Answer

0 votes
by SoSci Survey (304k points)

Es scheint so, als wäre die Zeile 3 mit einer 1 statt einer eckigen Klammer abgeschlossen worden.

// Falsch
$fragen = ['LT08', 'LT09', 'LT10', 'LT11', 'LT12'1;
// Richtig
$fragen = ['LT08', 'LT09', 'LT10', 'LT11', 'LT12'];
by s248429 (160 points)
Danke für die schnelle Rückmeldung. Tatsächlich ist das nur ein Schreibfehler. Selbst mit der Klammer funktioniert es leider nicht. Habt ihr noch weitere Tipps für mich?
by SoSci Survey (304k points)
Wenn Sie mal Ihren PHP-Code und die (ggf. neue) Fehlermeldung posten möchten, dann kann ich gerne mehr dazu sagen. Das, was ich oben in der Fehlermeldung lese, scheint mir inhaltlich nicht besonders schlüssig.
by s248429 (160 points)
Der PHP-Code sieht wie folgt aus:

// Definition der Fragen und der korrekten Antworten
$fragen = ['LT08', 'LT09', 'LT10', 'LT11', 'LT12'];
  'LT08' => 3,  //
  'LT09' => 1,  //
  'LT10' => 4,  //
  'LT11' => 2,
  'LT12' => 1,
];
 
// Initialisierung einer Zähler-Variable
$points = 0;
 
// Prüfung aller Fragen in einer Schleife
foreach ($fragen as $variable=>$correct) {
  // Die Antwort des Teilnehmers abrufen
  $answer = value($variable);
  // Überprüfen und ggf. einen Punkt zählen
  if ($answer == $correct) {
    $points++;  // Gleichbedeutend mit $points = $points + 1
  }
}
 
// Das Ergebnis anzeigen ...
html('<p>Sie haben '.$points.' Punkte erzielt.</p>');
// ... oder in einer internen Variable speichern
put('IV01_01', $points);


Die Fehlermeldung ist die obige, nur mit der Klammer.
by SoSci Survey (304k points)
Sie erste Zeile definiert ein Array:

$fragen = ['LT08', 'LT09', 'LT10', 'LT11', 'LT12'];

Das ist dann aber auch abgeschlossen - deshalb weiß PHP nicht, was es mit dieser Zeil hier anfangen soll:

  'LT08' => 3,  //

Ich glaube, Sie wollten eigentlich folgendes schreiben:

$fragen = [
  'LT08' => 3,
  'LT09' => 1,
  'LT10' => 4,
  'LT11' => 2,
  'LT12' => 1,
];
by s248429 (160 points)
Danke! Das hat funktioniert. Tatsächlich habe ich noch eine weitere Frage. Ich wollte ein Feedback zu dem Ergebnis ergänzen. Jedoch wird auch hier die selbe Fehlermeldung angezeigt. Weißt du, welche Klammer ich hier falsch gesetzt habe:

if ($points < 0) {
  text('feedback1');
} elseif ($points < 1) {
  text('feedback2');
} else ($points < 2) {
  text('feedback3');
}
by SoSci Survey (304k points)
> Tatsächlich habe ich noch eine weitere Frage.

Am betsen als neue Frage anlegen - hier unten wird es sonst schnell unübersichtich.

> Jedoch wird auch hier die selbe Fehlermeldung angezeigt.

Die Code sieht auf den ersten Blick korrekt aus. Ich bräuchte bitte die komplette Fehlermeldung - und evtl. auch den kompletten PHP-Code. Es kann sein, dass weiter oben im Code einfach ein Anführungszeichen fehlt.

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

...