Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Tokenattribute Änderung in Matrix / Antwortpersistenz /Gleichung nur einmal

  • nocheinschmidt
  • nocheinschmidt's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 years 3 months ago #229390 by nocheinschmidt
Bitte helfen Sie uns, Ihnen zu helfen und füllen Sie folgende Felder aus:
Ihre LimeSurvey-Version: 5.3.18+220530
Eigener Server oder LimeSurvey-Cloud: eigener
Genutzte Designvorlage: vanilla erweitert
==================
Hallo,
ich nutze LS mal als Tool zum Ansprechpartner/Kontaktabgleich für verschiedene Unternehemensbereiche unserer Kunden. Dazu bekommt eine zentrale Person des Unternehemens alle uns bekannten Kontakte der jeweilgen Bereiche und soll diese abgleichen/ändern/ergänzen. Ich habe vor, das über eine Matrix mit offenen Textfelder zu lösen.
Insgesamt sind es 29 Bereiche mit 3 Spaltenvariablen (also 207 Datenfelde, verteilt auf eigentlich 5 Matrixfragen, im angängenden Script nur eine)
Das wichtige: bereits bestehende Informationen sollen in der Matrix vor-angezeigt werden, was ich über importierte Token-Attribute mache, die wieder über eine vorangestellte Gleichungsvariable in die Matrix gespielt werden (F1_1_1=TOKEN:ATTRIBUTE_1... 69)..
--> funktioniert einwandfrei, auch Änderungen werden gespeichert, die Werte der Matrix quasi überschrieben
Aber:
Wenn die Umfrage zwischendurch geschlossen wird und der TN später weitermachen will, werden alle neuen / schon geänderten Matrix-Felder wieder auf die ursprünlichen Tokenwerte zurückgesetzt:
--> Antwortpersitenz ist aktiviert / tokenbasiert
--> selbst wenn der Befragte nach der Gleichungs/-Zuordungsvariable weiter macht (beim 2. Anlauf) sind immer wieder die alten Tokenwerte drin
--> Poblem besteht nur, wenn Browser komplett geschlossen wird, funktioniert aber, falls nur der Tab zu geht und der Browser offen bleibt
--> ohne die Gleichung/ohne Einbindung der Token funktioniert die Antwortpersistenz, d.h. Werte werden trotz schließen des Browsers nach Neuaufruf korrekt angezeigt, wie eingetragen

Ergo: es muss irgendwie daran liegen, dass die Gleichungsvariable trotzdessen, dass sie ganz vorn ist und eigentlich bei Wiederaufnahme nicht mehr geöfnet wird, die bereits aktualiserten Werte überschreibt.
Gibt es eine Möglichkeit, dass diese Gleichungsvariable nur einmal aufgerufen wird und dann nie wieder?

Script anbei. Vielen Dank!

 

File Attachment:

File Name: limesurvey...6118.lss
File Size:55 KB
  • Please Log in to join the conversation.

    • Joffm
    • Joffm's Avatar
    • Offline
    • LimeSurvey Community Team
    • LimeSurvey Community Team
    More
    2 years 3 months ago #229391 by Joffm
    Nun ja,
    salopp gesagt, überknallst Du die Werte ja auch ohne Rücksicht auf Verluste.
    Soll heißen, Du testest nicht, ob das Matrixfeld bereits gefüllt ist. Denn dann könnte es geändert worden sein und sollte ja nicht mehr durch das Attribut überschrieben werden.

    Dies ist ja der analoge Fall zur Generierung einer Zufallszahl.
    Hier sagen wir ja auch immer: Benutze das Konstrukt {if(is_empty(zufall), rand(1,2),zufall)}
    Also nur wenn "zufall" noch leer ist, wird eine Zahl erzeugt.

    Ebenso bei Dir:
    {F1_1_1=if(is_empty(F1_1_1),TOKEN:ATTRIBUTE_1,F1_1_1)}
    Nur, wenn F1_1_1 noch leer ist, wird der Wert des TOKENS genommen, sonst bleibt der eingetragene Wert.

    Teilnehmer-Tabelle
     

    Frage jungfräulich:
     

    Frage nach Änderung und Neuaufruf:
     


    Und: Wieso ist denn die Frage "Zuordnung" eine Textanzeige und nicht eine Gleichung?
    Die Idee dahinter erschließt sich mir nicht.

    Joffm

    Volunteers are not paid.
    Not because they are worthless, but because they are priceless
  • Please Log in to join the conversation.

    • nocheinschmidt
    • nocheinschmidt's Avatar Topic Author
    • Offline
    • New Member
    • New Member
    More
    2 years 3 months ago #229398 by nocheinschmidt
    Hallo Joffm,

    erstmal vielen Dank für schnelle Antowrt. Die is_emtpy-Bedingung war tatsächlich meine Hoffnung, klappt aber auch nicht.
    Das Problem ist nicht, dass man die Werte nicht ändern kann und die neuen nicht hinterlegt werden, sondern dass die geänderten Werte nur bei dem Neuaufruf der Seite wieder auf die Tokenwerte zurückfallen, die neuen Antworten/Werte also nur dann, wenn die Befragten später weitermachen, wieder weg sind.
    Wohlgemerkt: wenn der Browser offen bleibt und man nur den Tab schließt, passt das.
    Wenn man den Browser komplett schließt und die Umfrage wieder aufruft, stehen wieder die alten Token-Werte drin...als wenn alle
    Ich habe das Script mal mit um Deine Hinweise ergänzt, die is_emtpy aber erstmal nur für F1_1_1 hinterlegt. Die Teilnehmereinstellung habe ich eigebtlich auch alle durch probiert.
    Hast Du noch eine Idee? Oder übersehe ich da einfach irgendwas...
    Vielen Dank! Sven

    Please Log in to join the conversation.

    • nocheinschmidt
    • nocheinschmidt's Avatar Topic Author
    • Offline
    • New Member
    • New Member
    More
    2 years 3 months ago #229403 by nocheinschmidt
    Hallo Joffm,
    nochmal besten Dank!
    Folgende Lösung: die Gleichung F1_1_1=if(is_empty...,TOKEN:ATT..,F1_1_1) muss in den Fragetext der Gleichgungsvariable geschrieben werden, nicht in das Bedingungsfeld.
    Beides funktioniert zwar, wenn man die Umfrage nur einmal durchläuft, im Fragetext wird es aber auch bei Wiederaufraufnahme der Umfrage (nach Unterbrechung) mit Änderung angezeigt.
    Danke und Grüße

    Please Log in to join the conversation.

    Moderators: holchJoffmtpartner

    Lime-years ahead

    Online-surveys for every purse and purpose