0 votes
in SoSci Survey (dt.) by s077606 (130 points)
edited by s077606

Hallo,
ich verwende das SoSci Survey Shutter-Layout für meinen Fragebogen. In diesem möchte ich einen Versuch durchführen, in welchem Versuchsteilnehmer in einer Zahlenreihe möglichst schwierig (Schriftgröße sehr klein) eine Zahl suchen sollen.
Die Darstellung die ich hierfür gewählt habe, ist die Kärtchen Darstellung in Spaltenweiser Anordnung. Wie bereits festgestellt, können pro Frage bei einer Mehrfachauswahl 99 Items als Antwortmöglichkeiten ausgegeben werden, die Anordnung ist, dass in den ersten drei Zeilen jeweils 25 Kärtchen zu sehen sind und in der letzten Zeile 24.
Diese Aufteilung der Kärtchen soll bestehen bleiben.
Folgende Fragen hierzu:
1. Wie kann ich den Innenabstand der Items verändern, sprich, dass das Kärchten "kleiner" wird, sodass zwischen Zahl und Kärtchenrand ein möglichst geringer Abstand ist.
2. Kann man den Inhalt eines Kärtchens "durchstreichen", vergleichbar mit der Option bei Excel, dass man einzelne Wörter, Zahlen etc. in den Zellen durchstreichen kann, das Wort, die Zahl etc. jedoch weiterhin stehen bleibt?
3. Gibt es einen Code, welchen ich innerhalb der 99 Items vor EINES der Items stellen kann, sodass es nicht möglich ist, dieses anzuklicken? Bei Bearbeiten der Items kann ja nur ausgewälhlt werden, dass das Item beantwortet werden muss.

Vielen Dank für Ihre Antwort bereits im Voraus.

1 Answer

0 votes
by SoSci Survey (304k points)

Ich habe mir erlaubt, für eine akkkurate Antwort erneut ein Administrator-Logon für Ihr Befragungsprojekt anzulegen. Um CSS-Befehle im Layout zu ergänzen suchen Sie bitte im Karteireiter "HTML-Vorlage" des Layout den Bereich zwischen <style> und </style>. Dort ergänzen Sie...

.s2iSelection.cards.js div.option > div.label {
  padding: 0;
}

Damit wird der voreingestellte Innenabstand von 1em links und rechts aufgehoben. Die Kärtchen werden daruch schmaler. Aber Sie können in der Frage ja direkt einstellen, dass Sie "nur" 25 Spalten (Kärtchen pro Zeile) haben möchten. Wenn das noch nicht zum gewünschten Ergebnis führt, sagen Sie bitte nochmal Bescheid. Ich möchte nur ohne Absprache keine Änderungen in "fremden" Projekten vornehmen.

Zum Durchstreichen können Sie <div style="text-decoration: line-through">Text/<div> bzw. dasselbe mit <span> nutzen.

Ein Deaktivieren einzelner Optionen sieht die Mehrfachauswahl nicht vor. Allerdings können Sie mittels JavaScript einzelne Eingabefelder deaktivieren:

<script type="text/javascript">
document.getElementById("VB22_04").setAttribute("disabled", true);
</script>

Damit wird übrigens nicht die Reaktion des Kästchens auf Mausberührung verändert. Dies müsste gesondert geändert werden.

Falls sie die Kärtchen hübscher einfärben möchten, können Sie das übrigens auch mittels JavaScript erledigen:


var inputs = ["VB22_06", "VB22_08", "VB22_10"];
for (var i=0; i<inputs.length; i++) {
var cardID = inputs[i] + "_container";
var card = document.getElementById(cardID);
card.style.backgroundColor = "#CCCCCC";
}

... unabhängig vom Innenabstand. Diese Option fiel mir jetzt erst ein, das Sie bisher explizit nach einer Angabe in der Option gesucht hatten. So ist es aber eigentlich eleganter.

by s077606 (130 points)
Gerne, ich habe nichts gegen einen Administrator Logon einzuwenden.

Die Innenabstände konnte ich durch den Befehl in der "HTML-Vorlage" verkleinern. Auch habe ich gefunden, dass ich einstellen kann, dass "nur" 25 Items pro Spalte/Zeile angezeigt werden sollen.

Mir ist nicht klar, wo ich den Befehl zum Durchstreichen einfügen soll, direkt vor die einzelnen Items in der Frage? Oder ist dies ein übergeordneter Befehl und kommt auf die Seite, auf welcher ich Items durchstreichen möchte?

Die gleiche Frage stellt sich mit bei dem Deaktivieren einzelner Items.

Gerne würde ich die Kärtchen hübscher einfärben. Vielen Dank für den Vorschlag. Füge ich den von Ihnen genannten Befehl in einen PHP-Code auf die Seite, in welcher ich die Kärtchen einfärben möchte ein? und mich ich bei var inputs = [....] die Items der Fragen aufzählen, welche ich einfärben möchte?
Als Hintergrundfarbe gebe ich einfach die Farbe, welche ich haben möchte anstelle der "#CCCCC" ein, ist dies korrekt?

Wieder einmal vielen Dank für den hervorragenden Support
by SoSci Survey (304k points)
Den HTML-Code für das Durchstreichen fügen Sie direkt beim Itemtext ein. Fangen Sie einmal mit <span  style="text-decoration: line-through">1</span> an.

Den HTML-/JavaScript-Code fügen Sie am besten als Textbaustein (Darstellung: HTML-Code) unter der Frage ein.
by s077606 (130 points)
Danke, den HTML-Code für das Durchstreichen habe ich direkt bei dem Itemtext eingefügt, dies erzielt den gewünschten Erfolg.

Den HTML-/JavaScript-Code habe ich als Textbaustein (Darstellung:HTML-Code) unter der Frage eingefügt. Leider erzielt dies nicht den gewünschten Effekt, sondern wird mir als Text angezeigt.
Gerne können Sie Ihren Administrator Logon nutzen, um sich ein Bild davon zu machen. Ich habe den Textbaustein bei dem Fragebogen q_V1 auf Seite 7 eingefügt.
by SoSci Survey (304k points)
Bitte wählen Sie im Textbaustein im Dropdown oben, dass es sich um "HTML-Code" handelt. Vermutlich ist "formatierter Text" oder "einfacher Text" voreingestellt: https://www.soscisurvey.de/help/doku.php/de:create:javascript#javascript_einbinden
by s077606 (130 points)
Vielen Dank, es wird nun nicht mehr angezeigt und scheint als HTML-Code zu funktionieren. Jedoch wird das gewünschte Ergebnis leider nicht erzielt:
es werden dadurch keine Einfärbungen vorgenommen

Liegt es daran, dass bei VB22_06 keine 0 als Antwort-Item vorkommt?
Müssen die Fragen, welche in der ersten Zeile mit

var inputs = ["VB22_06", "VB22_08", "VB22_10"];

abgefragt werden, mit den Inhalten der zweiten Zeile

for (var i=0; i<inputs.length; i++) {

übereinstimmen? Sprich sucht das Script nun bei den Fragen der ersten Zeile nach 0en und würde diese dann einfärben?

Vielen Dank für Ihre Hilfe
by SoSci Survey (304k points)
Wenn das JavaScript nicht funktioniert, dann prüfen Sie bitte die JavaScript-Fehlerkonsole (s. https://www.soscisurvey.de/help/doku.php/de:create:javascript). Was steht denn dort?
by s077606 (130 points)
Den einzigen Fehler, welchen ich bei der Fehlerkonsole in Hinblick auf meinen Fragebogen entdecken konnte, war folgende Meldung:

TypeError: card is null

der Fehler tritt anscheinend in dieser Zeile auf, wenn ich dies richtig deute:

card.style.backgroundColor = "#gray";
by SoSci Survey (304k points)
Ich habe mir gerade einmal die Seite 7 in Ihrem Fragebogen (dort wo VB22 steht) angesehen: Die Lösung dürfte recht einfach sein. Und zwar muss das JavaScript (wie oben geschrieben) unter (!) die Frage(n). Wenn es darüber steht, versucht das Script die Farbe der Karte anzupassen, bevor die Karte überhaupt im HTML-Code/auf der Seite vorhanden ist. Also einfach den Textbaustein nach unten schieben.
by s077606 (130 points)
Ich habe den Textbaustein nun direkt unter die Frage VB22 gestellt und auch unter die Fragen allgemein. Keines erzielt den gewünschten Effekt, kein Kärtchen wird grau eingefärbt.
Haben Sie nochmal eine Idee an was es liegen könnte? Bzw. habe ich doch etwas falsch gemacht? Wie bereits gesagt, habe ich nichts dagegen, wenn Sie sich meinen Fragebogen und die Textbausteine etc. ansehen.

Vielen Dank für Ihre Hilfe
by SoSci Survey (304k points)
Diesmal war's nur noch ein trivialer Fehler. Farben können in CSS entweder als RGB-Notation angegeben werden, z.B. "#666666" oder als Name "gray". Dann fällt aber das Doppelkreuz weg.

card.style.backgroundColor = "gray";
by s077606 (130 points)
Es tritt nun wieder folgende Fehlermeldung auf:

Fatal error: Maximum execution time of 5 seconds exceeded in /var/www/soscisurvey/html/inc/CacheRead.php on line 141

Liegt es daran, dass zu viele Items "eingefärbt" werden müssen? Wie kann dieses Problem gelöst werden? Ich denke, Sie haben noch den Administrator-Logon, könnten Sie sich bitte bei den Fragebögen q_V1, q_V2, q_V3 und q_V4 jeweils die Seite 9 ansehen? Nach dieser Seite kommt die eben genannte Fehlermeldung.
Ich habe auch schon versucht, das JavaScript, welches die Kästchen einfärbt, auf zwei HTML-Codes aufzuteilen (siehe q_V2 und q_V4). Leider hat dies auch nicht funktioniert.

Fehlerkonsole gibt folgende Linie aus:
              reject(new Error("page-thumbnail:error"));
by SoSci Survey (304k points)
Ach ja ... da ist das alte Problem wieder. Schade, ich hatte gehofft, dass es mit der ersten Optimierung schon erledigt wäre. Mit dem JavaScript hat es jedenfalls nichts zu tun - das läuft im Browser des Nutzers. Vermutlich verschwindet es, wenn Sie die Seite mal laden, wenn der Server wenig zu tun hat (damit der Cache in aller Ruhe geschrieben werden kann) -- aber das ist ja keine wirkliche Lösung, denn nach jedem Update und wann immer Sie etwas an einer Frage ändern, wird es wieder auftauchen. Es sind einfach sehr, sehr viele Variablen, die Sie da auf einer Seite haben...

Ich werde mir das nochmal im Detail ansehen müssen. Das wird aber leider noch bis Mitte/Ende nächster Woche dauern, da wir im Moment im Urlaub sind und uns nur um den täglichen Support kümmern können.
by s077606 (130 points)
Vielen Dank. Aber ich werde demnächst mit meiner Umfrage starten müssen, um dies noch zeitlich zu schaffen. Deshalb werde ich einfach zwei bis drei Frageblöcke entfernen.
Trotzdem nochmals vielen Dank für den hilfreichen Support!!!
Ich wünsche noch einen schönen Urlaub
by s077606 (130 points)
Könnten Sie sich bitte zeitnah nochmal meinen Fragebogen anschauen? Trotz Entfernung einiger Frageblöcke, kommt die oben genannte Fehlermeldung ab und an noch. Diese tritt nicht bei jedem Ausfüllen auf, aber hin und wieder.

Haben Sie hierfür eine Erklärung?
by SoSci Survey (304k points)
Wie lange das Script genau läuft, hängt von der Server-Last ab. Wenn viele Teilnehmer an anderen Befragungen teilnehmen, läuft der Fragebogen etwas langsamer. Normalerweise ist das unmerklich langsamer - aber nachdem Ihr Fragebogen ohnehin an der Grenze liegt, kommt er wohl manchmal "drüber".

Ich werde mir nachher nochmal genau ansehen, ob sich die Verarbeitung der unzähligen Variablen noch optimieren lässt, sodass Sie zuverlässig unter der Grenze bleiben.
by SoSci Survey (304k points)
Ein wenig Leistung ließ sich speziell für Ihren Anwendungsfall mit einer großen Anzahl Variablen noch optimieren - ob es für 100% Ihrer Interviews reicht, kann ich nicht versprechen. Aber ich bin zuversichtlich.
by s077606 (130 points)
Haben Sie die Optimierung bereits eingesteuert? Oder bedarf es noch einer Einsteuerung meinerseits?

Auf jeden Fall vielen Dank für Ihre Hilfe bereits jetzt
by SoSci Survey (304k points)
Es wäre sinnvoll, wenn Sie noch ein paar mal testen und die erhobenen Daten dahingehend im Auge behalten, ob es unerklärliche Abbrüche auf der zweiten Aufgabenseite gibt.

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

...