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

Ich habe eine Filterfrage angewandt, sodass die Antworten später übernommen werden mittels:

$itemliste = getItems('IM01', 'is', 2);

question('DK01', $itemliste);

Nun ist in der Mehrfachauswahlfrage IM01 auch ein freies Eingabefeld "sonstige ___".

Nach Tutorial ist der Code replace('%sns%', 'SN01', 'response'); dafür geeignet. Nun scheitere ich aber daran, diesen auf mein Beispiel anzuwenden. Ich bitte um kurze Hilfestellung.

in SoSci Survey (dt.) by s160766 (110 points)
> Nun scheitere ich aber daran, diesen auf mein Beispiel anzuwenden.

Welche Nummer (Kennung) hat Ihr Item und mit welchem PHP-Code haben Sie es ausprobiert?
Das Item hat die Kennung "08". Ich habe den Code aus dem Tutorial nur mit "IM01" statt "SN01" getauscht.
Die korrekte Variablen-Kennung des offenen Eingabefelds finden Sie in der "Variablen-Übersicht". Es müsste 'SN01_08a' sein.
Vielen Dank. Kann der Befehl dann einfach in der Zweiten Zeile stehen, ohne Zusätze?
Da ich Ihren kompletten PHP-Code noch nicht kenne, tue ich mich mit einer Antwort schwer. Auch bin ich nicht sicher, was Sie mit "Befehl" genau meinen: Das replace() benötigen Sie natürlich weiterhin.
Der Komplette PHP-Code ist der Teil der oben markiert ist, dieser nimmt die Antworten der Mehrfachfrage IM01 und gibt sie an DK01. IM01 hat 8 Elemente, das 8. ist die Antwortmöglichkeit "sonstige".

Der PHP Code sieht jetzt so aus:

$itemliste = getItems('IM01', 'is', 2);

('%sns%', 'IM01_08a', 'response');

question('DK01', $itemliste);

Das ist ziemlich sicher falsch, liefert auch diverse Fehlermeldungen. Leider bin ich in PHP nicht sonderlich bewandert.

1 Answer

0 votes

Verwenden Sie bitte den replace()-Befehl:

$itemliste = getItems('IM01', 'is', 2);
replace('%sns%', 'IM01_08a', 'response');
question('DK01', $itemliste);

In PHP (und den meisten anderen Programmiersprachen) besteht ein Befehlsaufruf immer aus dem Namen der Funktion (replace) und dahinter in Klammern die Parameter zum Befehl.

by SoSci Survey (146k points)
Hallo, ich habe das ganze so umgesetzt. Trotzdem wird nur "Sonstige:" übernommen, die eigentliche Eingabe wird nicht übernommen. Woran kann das liegen?
Was zeigt denn die Debug-Information? Die Kennung "IM01_08a" und das "response" dahinter haben Sie genau so übernommen?
Ich habe den Fehler gefunden, ein Zeichen fehlte. Jedoch wird das Item IM01_8a immer noch nicht korrekt dargestellt.

Das Item ist in IM01: "Sonstige, und zwar ___"
(Häkchen bei "Eingabefeld für Text anzeigen" ist gesetzt)

Wiedergegeben wird aber nur "Sonstige, und zwar"
Posten Sie bitte die Debug-Information der Seite?
https://www.soscisurvey.de/help/doku.php/de:create:debugging
[Information]    Interview Nummer 32 wird fortgesetzt
[Information]    Der Fragebogen base im Projekt Innovation20_21 wird verwendet
[Information]    Die Verweildauer auf Seite 16 war 1 Sekunden
[Verarbeitung]    Lese Antworten von Seite 16
[Information]    Antwort auf IM06_01 = 1
[Information]    Antwort auf IM06_02 = 2
[Information]    Antwort auf IM06_03 = 1
[Information]    Antwort auf IM06_04 = 1
[Information]    Keine Antwort für IM06_04a
[Information]    Antwort auf IM06 = 1
[Information]    Fragen bisher zu 36% vollständig beantwortet
[Verarbeitung]    Erstelle Seite 17 in Fragebogen base
[Inhalt]    Erstelle Frage DK07
[Inhalt]    Erstelle Frage DK01
[Inhalt]    Erstelle Frage DK02
[Inhalt]    Erstelle Frage DK03
[Inhalt]    Erstelle Frage DK04
[Inhalt]    Erstelle Frage DK05
[Inhalt]    Erstelle Frage DK06
[Information]    Folgende Platzhalter sind vorbereitet:
%sns% = (Text) test
Könnten Sie bitte noch die Debug-Information posten, die angezeigt wird, wenn Sie nach Beantwortung von IM01 auf "Weiter" klicken? Danke.
[Information]    Interview Nummer 34 wird fortgesetzt
[Information]    Der Fragebogen base im Projekt Innovation20_21 wird verwendet
[Information]    Die Verweildauer auf Seite 10 war 5 Sekunden
[Verarbeitung]    Lese Antworten von Seite 10
[Information]    Antwort auf IM01_01 = 1
[Information]    Antwort auf IM01_02 = 1
[Information]    Antwort auf IM01_03 = 1
[Information]    Antwort auf IM01_04 = 2
[Information]    Antwort auf IM01_05 = 1
[Information]    Antwort auf IM01_06 = 2
[Information]    Antwort auf IM01_07 = 1
[Information]    Antwort auf IM01_08 = 2
[Information]    Antwort auf IM01_08a = test
[Information]    Antwort auf IM01 = 3
[Information]    Fragen bisher zu 6% vollständig beantwortet
[Verarbeitung]    Erstelle Seite 11 in Fragebogen base
[Inhalt]    Erstelle Frage IM02
Danke. Soweit ich aus den beiden Informationen entnehme, wird der Platzhalter vollkommen korrekt gesetzt:

> %sns% = (Text) test

Deshalb vermute ich, dass Sie in der Folgefrage DK01 als achtes Item einfach nur etwas anderes als %sns% als Itemtext verwenden? Bitte tragen Sie dort als Itemtext nur "%sns%" ein.
...