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

0 votes

Hallo zusammen,

in einer Frage in meinem Projekt sind 5 offene Nennungen möglich. Diese sollen in der Folgefrage als Skalenbeschriftung erscheinen. Werden 5 Dinge genannt klappt dies problemlos.
Werden allerdings nur 3 Dinge genannt steht in den freien Skalenfeldern %text4% und %text5%. Des Weiteren erscheint die Warnung: "Für den Platzhalter %text1% wurde weder ein Eingabefeld mit prepare_input() vorbereitet, noch ein Inhalt mit replace() festgelegt"
Ist es möglich dies auszublenden?

Mein PHP-Code lautet wie folgt:

$frage = 'ZA01';
$items = array();
for ($i=1; $i<=05; $i++) {
  $itemID = id($frage, $i);
  $antwort = value($itemID);
  if (trim($antwort) != '') {
    replace('%text'.$i.'%', $antwort);
    $items[] = $i;
  }
}
if (count($items) > 0) {
  question('ZA01', $items);
}
in SoSci Survey (dt.) by s128412 (165 points)

2 Answers

+1 vote

Könnten Sie bitte überprüfen, ob die Frage ZA01 zusätzlich zum PHP-Code auch noch auf die Fragebogen-Seite gezogen wurde? Wenn ja, dann entfernen Sie sie bitte von der Seite.

Weiterhin ändern sie das 05 bitte in 5. Es dürfte in diesem Fall zwar nichts ausmachen, aber eine führende 0 sorgt dafür, dass die Zahl im Oktalsystem interpretiert wird.

Zuletzt prüfen Sie bitte, ob das erste Item (das mit %text1%) auch die Kennung 1 hat etc.

by SoSci Survey (107k points)
Vielen Dank für Ihre Antwort!
Die Frage ZA01 ist auf der vorherigen Seite. DIe Zahl habe ich geändert. Mit der Kennung habe ich momentan noch Probleme.

Die Frage ZA01 ist vom Typ "Offene Nennungen". Es sind 5 Nennungen möglich. Bei "Beschriftung der Zeilen" habe ich %n%, sodass vor jeder Zeile die Zahlen 1-5 stehen.

Die Frage auf der nächsten Seite (GK01), die diese Nennungen miteinspeißen soll ist vom Typ "Mehrfachauswahl-Matrix". Dort habe ich in die 5 Auswahloptionsfelder %text1% etc. eingetragen (siehe Bild).
Das klingt doch schonmal ganz gut. Dann ändern Sie den untersten Teil Ihres PHP-Codes bitte wie folgt:

if (count($items) > 0) {
  question('GK01', $items);
}
wäre der PHP-Code dann so:

$frage = 'ZA01';
$items = array();
for ($i=1; $i<=5; $i++) {
  $itemID = id($frage, $i);
  $antwort = value($itemID);
  if (trim($antwort) != '') {
    replace('%text'.$i.'%', $antwort);
    $items[] = $i;
  }
}

if (count($items) > 0) {
  question('GK01', $items);
}

?

Momentan kommt leider immernoch die Fehlermeldung
Könnten Sie bitte die Debug-Information ergänzen: https://www.soscisurvey.de/help/doku.php/de:create:debugging
ZA01 wurde mittlerweile in ZK01 umgeändert


[Information]    Interview gestartet (neue Nummer 265)
[Information]    Der Fragebogen base im Projekt Netzwerke_ASS wird verwendet
[Verarbeitung]    Erstelle Seite 6 in Fragebogen base
[Inhalt]    Zeige Text Titel GK
[Information]    value("ZK01x01") = ""
[Information]    value("ZK01x02") = ""
[Information]    value("ZK01x03") = ""
[Information]    value("ZK01x04") = ""
[Information]    value("ZK01x05") = ""
[Inhalt]    Erstelle Frage GK01
[Inhalt]    Erstelle Frage GK02
[Inhalt]    Erstelle Frage GK03
[Inhalt]    Erstelle Frage GK04
> value("ZK01x01") = ""

Offenbar wurden keine offenen Nennungen eingegeben. Dann sollte die Frage GK01 aber auf der Seite auch nicht angezeigt werden. Könnte es sein, dass Sie die Frage GK01 zusätzlich noch in die Seite "hineingezogen" haben? Wenn ja, entfernen Sie sie bitte von der Seite. question() und das Hineinziehen einer Frage sind äquivalent und dürfen nicht gleichzeitig verwendet werden.
oh, das habe ich tatsächlich nicht auf dem Schirm gehabt, dass question äquivalent zur Frage ist. Die Fehlermeldung kommt allerdings immernoch, wenn bei der vorherigen Frage nicht alle 5 Felder ausgefüllt wurden. Wenn alle 5 Felder ausgefüllt werden gibt es keine Probleme. Ich kann allerdings in der Frage nicht erwarten kann, dass alle 5 Felder ausgefüllt werden. Gibt es einen Befehl, der wenn nur 3 Felder ausgefüllt werden die Felder in GK01 leer lässt? Vielen Dank für Ihre Bemühungen!
ich suche quasi einen Befehl der sagt, dass wenn ein Feld leer bleibt auch nichts in das entsprechende Feld eingetragen wird und nur die Antworten übertragen werden, die angegeben wurden.
Genau dafür sollte der question()-Befehl mit dem $items eigentlich sorgen. Wenn Sie die Frage(n) aus der Seite entfernt haben, dürften nur 3 der Items von GK01 erscheinen, wenn Sie nur 3 Felder ausfüllen. Ist das der Fall?

Wenn nicht, fügen Sie bitte ein debug($items) ein und posten Sie, was der Fragebogen anzeigt, wenn Sie 3 Felder ausfüllen.

Nur zur Sicherheit: GK01 hat 5 Auswahloptionen (Screenshot unten) und jede davon verwendet einen der 5 Platzhalter? Wenn Sie die Platzhalter auch noch in anderen Fragen verwenden, dann erledigen wir erst einmal GK01 und kümmern uns anschließend um die anderen Fragen.
ja, das ist der Fall. Die linke(senkrechte) Itemspalte soll sich allerdings bei fehlendenden Nennungen nicht reduzieren. In dieser Itemspalte sind feste Items angelegt. Das Ausfüllen von ZK01 soll sich auf die horizontalen Antwortoptionen beziehen.  Ich habe mal einen Screenshot gemacht und oben bei meiner Frage als Bild hinzugefügt
> Die linke(senkrechte) Itemspalte soll sich allerdings bei fehlendenden Nennungen nicht reduzieren.

Okay, dann wird es schwieriger... Ich ging bisher davon aus, dass Sie eine horizontale Auswahl verwenden und die "Items" reduzieren wollten. Ich vermute weiterhin, Sie haben aktuell eine Mehrfachauswahlmatrix?

Diese werden Sie umwandeln müssen in 5 Fragen vom Typ "Mehrfachauswahl", die Sie dann als "kombinierte Frage" anzeigen. Gleiche Darstellung, aber dann lassen sich die Spalten einzeln ein- und ausschalten. Vielleicht sollten wir das dann in einer neuen Frage klären, wenn Sie soweit sind? Hier wird es langsam ein wenig unübersichtlich.
Vielen Dank! Ich habe nun die zweite Frage als kombinierte Frage angelegt. Hier ist der Link der neuen Frage: https://support.soscisurvey.de/?qa=16648/offene-nennungen-die-skala-nachsten-frage-ubernehmen-teil2
0 votes

by s128412 (165 points)
...