0 votes
in SoSci Survey (dt.) by s130803 (420 points)

Hallo,

ich würde gerne einen Platzhalter auf einer Seite abhängig von der Antwort auf eine Frage auf der gleichen Seite ändern.
Fallbeispiel:
Warenkorb mit einem Produkt auf der Seite. Am Ende der Seite wird die Summe inklusive Versand angezeigt. Dazu wird ein Platzhalter durch die Kosten des jeweiligen Produktes ersetzt. Wählen die Teilnehmenden nun auf der gleichen Seite den Expressversand, soll sich die Summe unten um den Betrag verändern.

Grundsätzlich ist meine Frage ähnlich zu diesem Hilfe-Eintrag: https://www.soscisurvey.de/help/doku.php/de:create:dynamic
Allerdings komme ich nicht weiter weil mir genau die 'Update'-Funktion fehlt, wenn eine Option ausgewählt wurde.

Können Sie mir bitte weiterhelfen, ob das möglich ist? Ein Workaround mit Anzeigen verschiedener Textbausteine wäre relativ aufwändig/komplex.

Besten Dank!

2 Answers

+1 vote
by SoSci Survey (328k points)
selected by s130803
 
Best answer

Allerdings komme ich nicht weiter weil mir genau die 'Update'-Funktion fehlt, wenn eine Option ausgewählt wurde.

Sie müssen ja für diese Anwendung mit JavaScript arbeiten. Dieses funktioniert über Event Handler. Sie können Ihre Update-Funktion an Klicks, Auswahlfelder und Textfelder "hängen". Die entsprechenden Events haben die Namen "click", "click" und für Textfelder "change" oder "keyup".

Details gerne auf Nachfrage. Dafür wären aber zusätzliche Informationen und ein Pretest-Link direkt (!) zur betroffenen Seite im Fragebogen erforderlich.

by s130803 (420 points)
Habe meine Antwort auf Ihren Kommentar als neue Antwort auf meine Frage gepostet, um besser formatieren zu können.
0 votes
by s130803 (420 points)
edited by s130803

Vielen Dank für die schnelle Antwort und das Angebot. Hier mehr Details zum Fragebogen.

Die Teilnehmenden wählen auf Seite 3 ein Auswahlkärtchen (d.h. Produkt) aus. Der Preis des Produktes wird über den folgenden PHP-Code auf der nächsten Seite eingeblendet, indem er den Platzhalter %price% ersetzt, wobei 'S003' (bzw. S004, je nach Geschlecht) die Auswahl ist und 'I001' ein Randomizer.:

if (value('I001') == 1) {
if (value('S003') == 1) {
	replace('%price%', '22');
} elseif (value('S003') == 2) {
	replace('%price%', '7.50');
} elseif (value('S003') == 3) {
    replace('%price%', '24');
} ...

Auf der gleichen Seite befindet sich zusätzlich noch eine Auswahl-Frage zum Versand ('S016' bzw. 'S008', je nach Bedingung). Wählen die TN bei dieser Frage die Option 2, soll auf den Preis ein Zuschlag erhoben werden, den ich gerne im Platzhalter %price% direkt anzeigen würde. Mit sehr einfacher PHP-Logik sähe das so aus (funktioniert natürlich nicht):

if (value('I001') == 1) {
    if ((value('S003') == 1) and (value('S016') == 1) {
    	replace('%price%', '22');
    } elseif ((value('S003') == 1) and (value('S016') == 2) {
    	replace('%price%', '22.17');
    } elseif ((value('S003') == 2) and (value('S016') == 1) {
    	replace('%price%', '7.50');
    } elseif ((value('S003') == 2) and (value('S016') == 2) {
        replace('%price%', '7.67');
    } ...

Zwischen den Optionen soll gewechselt werden können und %price% jeweils aktualisiert werden. An JavaScript habe ich mich noch nicht herangetraut, da ich hier sehr wenig Erfahrung habe.

Wie kann ich Ihnen denn einen Pretest-Link direkt zur betreffenden Seite zukommen lassen und dabei direkt die relevanten Variablen eintragen, sodass Sie in die richtige Bedingung kommen und auch relevante Werte angezeigt werden?

Hier der generelle Link zur betreffenden Seite, ansonsten können Sie sich auch gerne in das Projekt einloggen:
https://www.soscisurvey.de/B2Elmi2/?act=1zekF5otzYR1rvwzCrSO9CCL

Vielen Dank schon mal.

by SoSci Survey (328k points)
> Zwischen den Optionen soll gewechselt werden können

Dann haben Sie zwei Möglichkeiten.

(A) Sie können alle möglichen Ausgaben ins HTML ausgeben und mittels JavaScript nur die passende anzeigen oder

(B) Sie können ein <span>-Element mit ID definieren und mittels JavaScript jeweils das passende hineinschreiben. Das geht z.B: mit innerHTML.

Auf alle Fälle funktioniert es NICHT mit PHP-Code. Denn dieser wird serverseitig beim Klick auf "Weiter" ausgeführt. Aber Sie möchten ja eine Veränderung clientseitig, während die Seite noch im Browser des Nutzers ist.
by s130803 (420 points)
Vielen Dank für Ihre Antwort.

Option (A) wäre demnach analog zu der Anleitung "Fragen bei Auswahl einer bestimmten Option sofort einblenden" (in meiner ersten Frage hinterlegt)? Also, dass ich für jede Kombination von Preis und Gebühren einen Textbaustein erstelle und diesen dann, je nach Auswahl, ein- oder ausblende?

Falls dem so ist, wäre Option (B) einfacher/schlanker zu implementieren, oder lediglich ein alternativer Ansatz? Haben Sie hierzu auch eine Anleitung?

Die gleiche Problemstellung habe ich noch für eine weitere Auswahloption im 'Warenkorb', weswegen ich an einer möglichst schlanken Lösung interessiert wäre.
by SoSci Survey (328k points)
Ja, korrekt (A) wäre stark an diese Anleitung angelehnt - umständlich, aber nicht besonders anspruchsvoll.

Option (B) ist eleganter und schlanker, aber ein klein wenig anspruchsvoller. Eine starre Anleitung dazu werden Sie nicht finden, da werden Sie einfach ein wenig mit JavaScript spielen müssen.

> weswegen ich an einer möglichst schlanken Lösung interessiert wäre.

Um so wichtiger, dass Sie sich ein wenig in JavaScript einarbeiten :) Fangen Sie einfach mal an, bei Detailfragen helfe ich Ihnen dann gerne wieder weiter.
by s130803 (420 points)
Alles klar, das hat mir schon sehr geholfen. Dann stürze ich mich mal in das Abenteuer JavaScript und öffne für neue Probleme einen neuen Thread.

Vielen Dank Ihnen!

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

...