0 votes
in SoSci Survey (dt.) by s112204 (150 points)

Hallo Team des Supports!

Ich würde gern in javascript mit den Werten von Antworten arbeiten - wie kann ich diese Werte ansprechen? Mit z.B. "getElementbyID"?

An welcher Stelle finde ich diejenige ID einer Frage, mit welcher ich im javascript arbeiten kann?

Vielen Dank schonmal!

by SoSci Survey (301k points)
Es kommt ein wenig auf den Fragetyp an. Um welchen Fragetyp geht es denn?
by s112204 (150 points)
Es handelt sich um die Fragetypen
- Offene Nennungen und
- Mehrfachauswahl (dort z. B. "Text über den Optionen).
by SoSci Survey (301k points)
Was genau haben Sie mit dem "Text über den Optionen" vor? Dort ist ja keine Nutzereingabe... möchten Sie den Text dynamisch ändern?

Bei den offenen Nennungen sind die Eingabefelder nach dem Schema <Fragekennung>[a-z] benannt. Das erste Feld in der Frage AB01 würden SIe also ansprechen mit...

document.getElementById("AB01a").value
by s112204 (150 points)
Ich habe mehrere Mehrfachauswahl-Fragen kombiniert (per Zufallsgenerator) und verwende dabei den "Text über den Optionen" als den sich ändernden Aspekt der Frage. Die linke Spalte nach unten bleibt immer gleich.

Das habe ich gemacht, weil ich sonst alle Auswahloptionen nicht horizontal dargestellt bekommen hätte (15 mal Substantive und Wortgruppen). Ich habe mir dadurch eine Matrix erstellt.

Nun würde ich gern die eigentlichen Antworten (die "Texte über den Optionen") in interne Variablen für die Auswertung abspeichern, da ja nur der Antwortcode für meine linke Spalte abgespeichert wird und nicht meine eigentliche Antwort. Und deswegen suche ich nach einem Weg, wie ich auf diese zugreifen kann.

1 Answer

0 votes
by SoSci Survey (301k points)

Wenn Sie den "Text über den Optionen" als Beschriftung für die jeweilige Frage eintragen (das oberste Eingabefeld in der Frage), dann sollte das automatisch im Variablen-Label auftauchen.

Interne Variablen würden hier m.E. nicht besonders viel weiterhelfen, denn damit würden Sie ja lediglich die Anzahl der Variablen verdoppeln.

by s112204 (150 points)
Was meinen Sie genau mit "Variablen-Label"?

Ich finde als Eingabefeld ganz oben die "Beschreibung". Und mit dem Inspector im Firefox finde ich unter Label nur die Antwortoptionen der Frage...
by SoSci Survey (301k points)
Sie schreiben, dass Sie die Texte in der Auswertung (!) benötigen. Deshalb kann ich ehrlich gesagt nicht nachvollziehen, weshalb Sie mittels JavaScript (was mit der Auswertung und internen Variablen ja erstmal gar nichts zu tun hat) auslesen möchten?!

Mit welchem Statistik-Programm arbeiten Sie denn? Haben Sie die Testdaten schonmal in das Statistik-Programm ihrer Wahl heruntergeladen?
by s112204 (150 points)
JavaScript wäre meine erste Wahl gewesen. Es hat dann etwas mit der Auswertung und ggf. internen Variablen zu tun, wenn ich mit JavaScript meine Daten erzeuge.

Ich arbeite mit Excel als Auswertungsprogramm. Ich habe die Daten im Pretest bereits heruntergeladen. Bei der Mehrfachauswahl bekomme ich dort die Codierung für z. B. ausgewählt oder nicht ausgewählt. Hier fehlt mir aber noch was ausgewählt wurde, da meine Antwortoptionen dem Aufbau der Matrix entsprechend oben in der horizontalen Zeile stehen.
by SoSci Survey (301k points)
> da meine Antwortoptionen dem Aufbau der Matrix entsprechend oben in der horizontalen Zeile stehen.

Ja, das ist die Idee bei dem Ganzen :) Wobei Excel für die Auswertung wahrlich eine Zumutung ist.

Sie können mit ein wenig PHP-Code schon in interne Variablen "umkodieren" - mit 2 FOR-Schleifen ist das kein Problem, denn Sie wissen ja, welche Frage zu welchem Text gehört - auf die Original-Texte müssen Sie dafür gar nicht zugreifen.

Aber vielleicht ist es einfacher, wenn Sie sich in Excel (pro Spalte) eine Formel wie folgt anlegen:

WENN(A3 == 2; A$2; "")

Sprich, bei einer 2 wird die Beschriftung von oben (Zeile 2) einfach ruinterkopiert, sonst nicht.
by s112204 (150 points)
Die Auswertung würde ich in meinem Auswertungsprogramm machen (automatisiert über Makros im Excel). Um dies zu tun, benötige ich alle Daten in meinem Auswertungsprogramm.

Nun meine Frage: wie kann ich bei einer zufällig kombinierten Mehrfachauswahl-Frage (Anzahl: 6 Fragen kombiniert) den "Text über den Optionen" in meinem Auswerungsprogramm abspeichern?
by SoSci Survey (301k points)
Das "Umkopieren" der Wert, wie oben skizziert, kann man in Excel ja problemlos erledigen, bevor die Makros laufen. Man verdoppelt dadurch (genauso wie bei der Verwendung internen Variablen) die Anzahl der Variablen.

Die zufällige Auswahl hat keinen Einfluss auf die Datenstruktur. Insofern wäre das nur relevant, wenn Sie in SoSci Survey umkodieren möchten. Aber hier in den Kommentaren ist für PHP-Code etwas wenig Platz. Legen Sie doch gerne eine "related question" an, wo Sie auch Ihren PHP-Code posten. Dann kann ich deutlich akkurater antworten.
by s112204 (150 points)
Kann es sein, dass wir uns mißverstehen? Jedenfalls komme ich bei dem Punkt "umkopieren" nicht mehr mit.

Meine Frage ist ja folgende: wie kann ich bei einer Mehrfachauswahl-Frage den "Text über den Optionen" in meinem Auswerungsprogramm abspeichern?
by SoSci Survey (301k points)
> Jedenfalls komme ich bei dem Punkt "umkopieren" nicht mehr mit.

Nun, Sie haben die 1/2-kodierten Variablen (eine pro Mehrfachauswahlpunkt) im Datensatz. Nun haben Sie m.E. zwei Möglichkeiten: (1) Sie können in Excel nochmal so viele Variablen anlegen, und diese bekommen dann entweder den Text "von oben" (also aus Zeile 2) oder nicht. Oder (2) Sie können schon im Fragebogen neue (interne) Variablen verwenden, um die Texte hineinzuschreiben, falls das Auswahlfeld markiert wurde (Code 2).

In Excel wäre es die o.g. Formel plus ca. 5 Klicks. In SoSci Survey wäre es ein PHP-Code mit 2-3 FOR-Schleifen. Alles nicht dramatisch :)
by s112204 (150 points)
Es tut mir leid, Sie antworten mir leider nicht auf meine Frage.

Ich frage nicht nach einer Möglichkeit der Auswertung im Excel, sondern wie ich bei dem Fragetyp Mehrfachnennung den "Text über den Optionen" in einer internen Variable abspeichern kann?
by SoSci Survey (301k points)
> sondern wie ich bei dem Fragetyp Mehrfachnennung den "Text über den Optionen" in einer internen Variable abspeichern kann?

Ich kann auch gerne direkt auf Ihre Frage antworten:

put('IV01_01', 'Hier können Sie den Text eintragen');

Und wenn Sie unbedingt nach einer JavaScript-Lösung suchen, dann sähe sie wie folgt aus:

document.getElementById("IV01_01").value = "Hier können Sie den Text eintragen";

Aber ich bin ziemlich sicher, dass es Ihnen nicht viel bringt, dass ich Ihre Frage beantwortet habe. Denn m.E. wollten Sie eigentlich wissen, wie Sie an den Text herankommen, den Sie dort "über den Optionen" eingetragen haben.

Diesen Text können Sie mittels PHP nicht abrufen, aber das macht auch nichts, weil Sie ja wissen, was Sie dort eingetragen haben. Also können Sie die Texte ebenso in einem Array ablegen und dann abfragen:

$texte = array(
  'AB01' => 'Text über Frage A',
  'AB02' => 'Text über Frage B',
  'AB03' => 'Text über Frage C',
  'AB04' => 'Text über Frage D'
);

Mit $texte[$fragekennung] bekommen Sie nun auch den Text als Variable. Auch dies als PHP (s.o.) oder mit ein paar anderen Zeichen als JavaScript umsetzbar. Aber auch hier behaupte ich, dass Sie das einer erfolgreichen Auswertung nicht näher bringt.

Aus diesem Grunde habe ich oben einige Lösungsmöglichkeiten aufgezeigt, wie Sie im Datensatz das bekommen, was Sie - laut Ihrer Beschreibung - benötigen.
by s112204 (150 points)
Erstmal wieder vielen Dank für Ihre ausführliche Antwort!

Wie ich grundsätzlich auf einer internen Variable einen Wert abspeichere (mit PHP und JS) habe ich mir in der Anleitung durchgelesen und ausprobiert - das funktioniert.

Ich habe auch die Möglichkeit durchdacht, mir nur die Fragenkennung und abzuspeichern und in der Auswertung über eine Codierungstabelle (ca. 360 Werte) wieder den von mir vorher eingegeben Wert zu entschlüsseln.
Sehr viel einfacher wäre es, die entsprechenden 6 Werte einfach gleich abzuspeichern (z. B. in einer internen Variable). Das wäre dann ohne Codierung - Entcodierung in der Auswertung.


Sie schreiben ein für mich interessantes Beispiele in Ihrer Antwort:

document.getElementById("IV01_01").value = "Hier können Sie den Text eintragen";

Jetzt müsste ich ja nur noch den Abschnitt "Hier können Sie den Text eintragen" mit den 'Text über den Optionen" der Mehrfachauswertungen erstetzen.

Und hier ist die ganze Zeit meine Frage: wie komme ich an diesen Text heran und kann ihn mit ihrem JS-Beispiel verwenden?


Danke für Ihre Geduld!
by SoSci Survey (301k points)
> wie komme ich an diesen Text heran und kann ihn mit ihrem JS-Beispiel verwenden?

Aktuell gar nicht (Sie sind er erste, der danach fragt) - das ist auch nicht notwendig, denn die Werte verändert sich ja nicht. Sie schreiben die Texte einfach in ein Array und lesen das dann aus (vgl. mein letztes Beispiel).

Wenn Sie keine Lust auf 360 Extra-Variablen haben, dann können Sie mittels PHP-Schleifen übrigens auch einfach alle Text gleich zu einer Komma-separierten Liste o.ä. zusammenfassen lassen. Je nachdem, was Sie am Ende in der Auswertung damit vorhaben...

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

...