0 votes
in SoSci Survey (dt.) by s175898 (195 points)
edited by s175898

An dieser Stelle möchte ich meine Frage der Übersicht halber in einer neuen Frage fortsetzten:

Ich habe eine dreier Kombinationsfrage, die für die mobile Ansicht in eine zweier gefolgt von einer einfachen Skalen Frage dargestellt werden soll.

  • An sich funktioniert der aktuelle PHP-Code allerdings wird mir am
    Laptop die dritte Frage noch mal extra angezeigt (zusätzlich zur
    dreier Kombination), was eine Fehlermeldung verursacht. Ich habe alle
    sonstigen Codes (für Layout und fehlende Antworten) auf eine extra
    Seite direkt vor der eigentlichen Frageseite gepackt.
    PHP-Code:
    if (value('GR01_ScW') > 600) {
     question('FV01','gap=line','combine=FV02','gap=line','combine=FV03','gap=line');
     html('...');
     pageCSS(' div.vert { height: 100px; width: 20px; overflow: hidden; position: relative; } div.vert > span { display: block; position: absolute; bottom: 0; width: 100px; height: 20px; text-align: left; transform: rotate(270deg) translate(-20px, 5px); transform-origin: 0 0; } ');
    } else question('FV01','gap=line','combine=FV02','gap=line');
    html('...');
    pageCSS(' div.vert { height: 100px; width: 20px; overflow: hidden; position: relative; } div.vert > span { display: block; position: absolute; bottom: 0; width: 100px; height: 20px; text-align: left; transform: rotate(270deg) translate(-20px, 5px); transform-origin: 0 0; } ');
    question('FV03');
    html('...');
    pageCSS(' div.vert { height: 100px; width: 20px; overflow: hidden; position: relative; } div.vert > span { display: block; position: absolute; bottom: 0; width: 100px; height: 20px; text-align: left; transform: rotate(270deg) translate(-20px, 5px); transform-origin: 0 0; } ');
    
    
  • Allerdings funktioniert dann das fettgedruckte bei einer fehlenden
    Antwort nicht mehr. Ist der Code auf der selben Seite wie die
    eigentliche Frage funktioniert es.
    Code für fehlende Antworten:
      pageCSS('
          div.s2question div.s2item.s2fail,
          table.question td.trouble,
          table.question tr.trouble td {
              color: #FF0000;
              font-weight: bold;
          }
      ');
    
    
  • Durch die Aufteilung in zwei Fragen erhalte ich außerdem noch eine
    Fehlermeldung für mein offenes Eingabefeld "Sonstiges" bzw. derzeit
    auch am Laptop da die dritte Frage zweimal gestellt wird. Die
    Antworten aus Sonstiges sollten im ideal Fall direkt für die dritte
    Skala übernommen werden damit die Befragten auch in der dritten Skala
    zum identischen selbst eingegebenen Item antworten. Außerdem ist mir
    aufgefallen, dass, wenn ich auf "weiter" klicke und nicht alle Fragen
    beantwortet habe, meine Eingaben bei Sonstiges gelöscht werden.
    Technisch gesehen wäre es zudem optimal, wenn Teilnehmer sobald sie
    etwas in das Feld Sonstiges eingetragen haben, dazu gezwungen sind
    dieses auch zu beantworten. Vielleicht gibt es hierzu noch eine
    Lösung. Fehlermeldung:

  • Zu guter Letzt habe ich bei allen Teilfragen der Kombifrage
    "Kopfzeile mit dem Fenster scrollen" eingestellt. In der Vorschau der
    einzelnen Fragen funktioniert das auch wie vorgestellt. Bei der
    kombinierten Darstellung ist das ganze jedoch fehlerhaft und wird als
    ein großer weißer Balken gezeigt, der teilweise auch die Antworten
    verdeckt

Hier noch der Pretest-Link zum Fragebogen. Er beginnt auf Seite 1. Man kann jedoch sofort weiter klicken und kommt dann auf die betreffende Seite. Dadurch können alle Fragebogen Elemente die im Hintergrund auf den Seiten davor eingefügt wurden für eine korrekte Darstellung genutzt werden. Pretest-Link

by SoSci Survey (305k points)
Tipp: Wenn Sie hier PHP-Code einfügen, dann markieren Sie diesen und klicken Sie auf den Knopf {}. Dann wird der Code als Code formatiert.
by s175898 (195 points)
Das habe ich mehrfach auf diese Weise versucht aber er hat trotzdem nicht den gesamten Code als Code formatiert

1 Answer

0 votes
by SoSci Survey (305k points)

Ich beginne mal mit dem ersten PHP-Code:

if (value('GR01_ScW') > 600) {
    question('FV01','gap=line','combine=FV02','gap=line','combine=FV03','gap=line');
    html('...');
    pageCSS('...');
} else question('FV01','gap=line','combine=FV02','gap=line');

html('...');
pageCSS('...');
question('FV03');
html('...');
pageCSS('...');

Sie sehen, dass ich da einen kleinen Abstand eingefügt habe. Dieser hat auf die Programmierung keinerlei Einfluss - aber er macht deutlich, warum es nicht funktioniert.

Der erste Teil der IF-Konstruktion ist in geschweifte Klammern gesetzt. Daher funktioniert das. Der zweite Teil - das ELSE - bezieht sich in dieser Form nur auf das question(). Alles andere wird immer asugeführt.

Korrekt wäre m.E. Folgendes:

if (value('GR01_ScW') > 600) {
    question('FV01','gap=line','combine=FV02','gap=line','combine=FV03','gap=line');
    html('...');
    pageCSS('...');
} else {
    question('FV01','gap=line','combine=FV02','gap=line');
    html('...');
    pageCSS('...');
    question('FV03');
    html('...');
    pageCSS('...');
}

Auch hier gilt: Die Einrückung hat keinerlei Relevanz für PHP, das dient nur der Lesbarkeit. Wesentlich sind die geschweiften Klammern.

by s175898 (195 points)
Vielen Dank dieser Teil hat schonmal funktioniert
by s175898 (195 points)
Ich wollte noch mal höfflich nachfragen, ob Sie auch noch einen Blick auf meine restlichen Fragepunkte werfen könne.
by SoSci Survey (305k points)
Ja, aber nur wenn Sie spezifzieren, welche davon noch offen sind (gerne auch in einer separaten Frage). Denn In aller Regel ist es so, dass ein Problem viele Folgefehler verursacht. Und die Hälfte davon verschwindet, wenn man das erste Problem löst.

Was wahrscheinlich bleibt, ist das Problem mit den Sonstiges-Eingabefelder. Das ist aber weniger ein techinsches Problem: da müssten Sie sich erstmal überlegen, was Sie statt dem Eingabefeld anzeigen wollen. Aber eigentlich steht dahinter das klassische Problem, dass die Verknüpfung offener und geschlossener Abfragen wenig sinnvoll ist, weil man das dann in der Auswertung ohnehin nicht verwerten kann.
by s175898 (195 points)
In diesem Fall der letzte Punkt der Hauptfrage zur Scrolling Problematik und wie schon angedeutet die Sonstiges Eingabefelder. Die Grundidee hier wäre, dass das was für Frage 1&2 eingetragen wurde automatisch dann auch in Frage 3 erscheint in der mobilen Ansicht.
by SoSci Survey (305k points)
> dass das was für Frage 1&2 eingetragen wurde automatisch dann auch in Frage 3 erscheint in der mobilen Ansicht.

Kann man machen, dafür muss man sich aber ein klein wenig mit JavaScript auseinandersetzen. Und zwar "hängt" man an den "keyup" Event-Handler des Eingabefeldes eine Funktion, welche den Wert in ein mit id bezeichnetes <span>-Tag schreibt.

Die Beschriftungen in der dritten Frage könnten also so aussehen:

<span id="open1"></span>

Und der JavaScript-Code:

var input1 = document.getElementById("ZE01_01");
input1.addEventListener("keyup", function() {
    document.getElementById("open1").innerHTML = input1.value;
});

Sie sehen, warum ich solche separaten Baustellen lieber in separaten Fragen beantworten würde?

Was das Scrollen angeht ... dafür bräuchte ich bitte (auch gerne in einer separaten Frage, denn auch das wird evtl. nicht trivial) einen aktuellen Pretest-Link.

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

...