Matrix auffüllen

More
1 month 2 weeks ago #219480 by agostini
Matrix auffüllen was created by agostini
Ich habe eine Matrixfrage (Texte) mit 5 Zeilen und 4 Spalten. 3 der Spalten werden mit einer Auswahlbox versehen, die 4. bleibt als Textspalte (kommt alles aus dem super Tutorial von Joffm). Je nach ausgewählten Antworten in der ersten Spalte wird die 2. und 3. Spalte mit einem missingwert aufgefüllt und deaktiviert. 
Was ich nicht hinbekomme: die 4. Spalte soll in Abhängigkeit von der ersten ebenfalls einen Wert bekommen (nämlich 0), wenn in der ersten eine bestimmte Antwort (nämlich 19 .. keine weitere Etappe) gegeben wird. Danke im Voraus!
Attachments:

Please Log in to join the conversation.

More
1 month 2 weeks ago #219481 by holch
Replied by holch on topic Matrix auffüllen
Bitte immer im richtigen Sprachforum posten. Ich verschiebe das jetzt mal ins deutsche Forum!

I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.

Please Log in to join the conversation.

More
1 month 2 weeks ago #219500 by Joffm
Replied by Joffm on topic Matrix auffüllen
Keine Ahnung auf die Schnelle.

Denn: Was soll diese Zeile "keine weitere Etappe"?
Da würde ich lieber ein dynamisches Array nehmen, in welchem der Befragte die entsprechende Anzahl von Etappen selbst einblendet.
Wie hier.
forums.limesurvey.org/forum/can-i-do-thi...columns-and-dropdown

Hier wird zusätzlich das Ziel der Etappe 1 als Start der Etappe 2 übernommen.
 

Guck es Dir einfach einmal an.

Joffm


Volunteers are not paid.
Not because they are worthless, but because they are priceless
Attachments:

Please Log in to join the conversation.

More
1 month 2 weeks ago #219506 by agostini
Replied by agostini on topic Matrix auffüllen
Danke für den Hinweis auf die dynamischen Arrays. In diesem Fall müssen die 5 Zeilen aus Gründen der Vergleichbarkeit bleiben. Wenn ich die Frage als Pflichtfrage definiere, dann müssen in der Folge halt alle Zeilen ausgefüllt sein, incl. der 4. Textspalte. Daraus resultiert die Antwortvorhabe "keine weitere Etappe".

Please Log in to join the conversation.

More
1 month 1 week ago #219559 by Joffm
Replied by Joffm on topic Matrix auffüllen
Hallo,
mir ist völlig schleierhaft, was in diesem Zusammenhang unter Vergleichbarkeit zu verstehen ist.
Außer, dass ich als Teilnehmer gezwungen bin, evtl. viermal "keine weitere Etappe" anzuklicken (und entnervt den Browser schließe).

Gut, ich denke, Du wirst noch ein Problem bekommen.
"Disabled" Elemente sind nämlich nicht $_POST enthalten, werden also nicht übertragen. Im Gegensatz dazu werden "readonly" Elemente übertragen.

Gut, ich habe Dir also doch einmal ein Beispiel mit "dynamischen" Zeilen gebaut.
1. Werden diese Optionen wie "kein Auto", "keine weitere Etappe" nicht im Drop-Down angezeigt, aber im Fall der Fälle in die Zellen der Matrix geschrieben.
2. Damit Du Deine "19", "-91", "-92" - Werte trotzdem bekommst, ist hinter der Matrix eine Gleichungsfrage, die diese Werte entsprechend nachträglich setzt.
3. Natürlich Validierung (Ich bin ziemlich sicher, dass jemand auch 450km beim Flugzeug eintragen wird).

Hier ein paar Bildchen
a. Text in der Entfernungsangabe
 

b. weniger als 300m
 

c. alles in Ordnung
 

Und so sieht der Datensatz dann aus (EXCEL, wegen der besseren Sichtbarkeit untereinander gestellt)
Du siehst die eingefügten Werte 
 

Und hier das Beispiel:
 

File Attachment:

File Name: limesurvey...2196.lss
File Size:36 KB


Viel Spaß beim Gucken

Joffm
 


Volunteers are not paid.
Not because they are worthless, but because they are priceless
Attachments:

Please Log in to join the conversation.

More
1 month 1 week ago #219592 by agostini
Replied by agostini on topic Matrix auffüllen
1. Zu Vergleichbarkeit: die matrix war bei einer Vorgängeruntersuchung fünfzeilig angelegt. Die Anzahl an Zeilen könnte einen Einfluss darauf haben, wie viele Etappen jemand anlegt. Trotzdem nehme ich deine Variante liebend gerne an und verwerfe die Matrix mit fester Zeilenanzahl.

2. Beim Speicherthema war ich noch gar nicht. Deine Gleichungsfrage löst das Problem ja. Nur aus Neugierde: könnte man die Zellen auch auf "readonly" setzen und damit die Gleichungsfrage überflüssig machen?

Insgesamt: Vielen herzlichen Dank. Es ist alles so leicht, wenn man weiß, wie's geht! Ich nehme Dein Angebot einfach an und baue die Frage so bei mir ein ...

Please Log in to join the conversation.

More
1 month 1 week ago #219593 by Joffm
Replied by Joffm on topic Matrix auffüllen

könnte man die Zellen auch auf "readonly" setzen und damit die Gleichungsfrage überflüssig machen?

Probiere es aus.
Wenn es mir gelungen wäre, hätte ich es gemacht.
Aber ich habe wirklich keine Ahnung von javascript. Ich kann nur rudimentär erkennen, was andere machen, und mit viel trial und error ein wenig anpassen.

Viel Erfolg
Joffm


Volunteers are not paid.
Not because they are worthless, but because they are priceless

Please Log in to join the conversation.

More
1 month 1 week ago #219628 by agostini
Replied by agostini on topic Matrix auffüllen
Hallo Joffm, noch eine Beobachtung: wenn man zu dieser Matrix mit dynamischen Zeilen zurück navigiert, passieren drei Sachen:
1. es wird wieder nur die erste Zeile angezeigt, aber diese verdoppelt.
2. Wenn man dann die anderen Zeile wieder einblendet, sind die Werte noch da, aber auch alle anderen Zeile sind verdoppelt (Verdoppelt bedeutet, dass jede Zeile jetzt aus zwei Zeilen zusammengesetzt ist)
3. Die Validierung meckert, dass die Werte in Spalte 4 nicht passen, obwohl sie dies tun.
[img]T:\hp\2021-09-10 08_32_16-Window.png[/img]
Attachments:

Please Log in to join the conversation.

More
1 month 1 week ago #219637 by agostini
Replied by agostini on topic Matrix auffüllen
3. Die Validierung hat gemeckert, weil die Zelle ja mit -91 aufgefüllt wurde, was bekanntlich kleiner als 300 ist - erledigt.

Please Log in to join the conversation.

More
1 month 1 week ago #219651 by agostini
Replied by agostini on topic Matrix auffüllen
Bleibt Punkt 1 und 2

Please Log in to join the conversation.

More
1 month 1 week ago #219665 by Joffm
Replied by Joffm on topic Matrix auffüllen
3. Die Validierung meckert nicht, wenn - wie bei mir - diese Gleichung, die nachträglich Werte setzt, in einer späteren Gruppe liegt.

1. und 2. Da solltest Du Dein Werk einmal als lss Export herschicken, aber nur mit den relevanten Fragen.

Was soll man sonst im Moment sagen.
Du hast ja gesehen, dass es hier bei mir in meiner Anlage nicht so ist.

Übrigens: Hast Du schon gesagt, mit welcher Version Du arbeitest?
Ich habe nur in Deiner ersten lss gesehen, dass die Datenbank-Version wohl 355 ist. Aber welche genaue Version von LS, 3.x. benutzt Du?

Bis dann
Joffm
 


Volunteers are not paid.
Not because they are worthless, but because they are priceless

Please Log in to join the conversation.

More
1 month 1 week ago #219731 by agostini
Replied by agostini on topic Matrix auffüllen
Hallo Joffm, ich nutze dafür Version 3.14.8+180829.
Die Fehler kommen bei mir auch in deiner Version. Noch einmal erklärt, was passiert:
1. Navigiert man zur Matrix zurück, liegen alle Zeilen doppelt vor (hänge noch mal ein Bild dran).
2. Die Validierung gibt einen Fehler, weil in die Zellen ja teilweise ein negativer Wert geschrieben wurde, der kleiner als 300 ist. Das habe ich in der Version, die ich dranhänge, schon ergänzt, und dann passt es.
Attachments:

Please Log in to join the conversation.

More
1 month 1 week ago #219742 by Joffm
Replied by Joffm on topic Matrix auffüllen
Hallo,
zunächst: Ich kann diese Dopplung in 3.25.16 nicht reproduzieren.
Aber in einem anderen Zusammenhang "Senkrechte Radios in Matrix" hat dieses kleine css geholfen.
Bei mir hat es hier jetzt nichts kaputtgemacht, also schau einfach einmal.
<style type="text/css">
td.with-select input.form-control { display:none; }
</style>

Aber: Dieses ganze Script ist nun wirklich nicht für "Zurückgehen" geeignet. Siehst Du ja auch bei Dir. Die ganze schöne Spielerei mit den "disabled" Felder ist weg.
Liegt natürlich daran, dass diese auf  "onChange" reagieren.

Wenn dies (css) bei Dir eben nicht funktioniert, kannst Du ja eine Stufe zurückgehen, und die Zeilen der Reihe nach mit Teilfragenrelevanz einblenden.
Zweite Zeile wird gezeigt, wenn !is_empty(M1_Y001_X001) and !is_empty(M1_Y001_X004)
Dritte Zeile wird gezeigt, wenn !is_empty(M1_Y002_X001) and !is_empty(M1_Y002_X004)
...
Man kann es natürlich noch "Feintuning" machen, indem man folgende Bedingungen zusätzlich einbaut:
Wenn X001<3 -> !is_empty(...X002)
Wenn X001<3 AND X002>1 -> !is_empty(...X003)
Bei X001>2 sind X002 und X003 ja irrelevant.

Das wird wohl die Dopplung verhindern, bringt Dich aber nicht weiter bei den "disabled" Feldern.

Langer Rede, kurzer Sinn: Lass das mit dem "Zurückgehen" weg.
Es lockt nur Herrn Alzheimer aus seiner Höhle.
Soll heißen, wenn nach Vorfragen wie "In welchen dieser Länder haben Sie schon einmal Urlaub gemacht?" oder "Welche dieser Fernsehsender kennen Sie?" für jedes gewählte Item eine ganze Latte Fragen kommt, wird man plötzlich sehr vergesslich.
Spätestens beim dritten geht man zurück und reduziert die bereisten oder bekannten Optionen (falls man zurückgehen kann)

Weiter kann ich nichts sagen, da ich im Grunde ein absoluter Laie bin, was javascript angeht.

Joffm

P.S.
Achte bitte darauf, dass bei Deiner Validierungsgleichung keine Leerzeichen am Anfang stehen.
Dann fühlt sich der Expression Manager nicht angesprochen.
Daher:
In javascript und css nach der öffnenden geschweiften Klammer ein Leerzeichen oder einen Zeilenumbruch.
Wenn der Expression Manager anspringen soll, eben kein Leerzeichen.
Wie im Handbuch

Expression: Anything surrounded by curly braces:

  • As long as there is no white space immediately after the opening brace or before the closing curly brace.


 


Volunteers are not paid.
Not because they are worthless, but because they are priceless
The following user(s) said Thank You: agostini

Please Log in to join the conversation.

Start now!

Just create your account and start using Limesurvey today.

Register now