Welcome to the LimeSurvey Community Forum

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

Auswahloptionen in Matrix Abfrage

  • jo2019
  • jo2019's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
5 years 3 weeks ago #181178 by jo2019
Auswahloptionen in Matrix Abfrage was created by jo2019
Hallo zusammen,
ich bin Neuling und hätte eine Frage.
Konnte die Info per suche hier im Forum leider nicht Finden, da ich vermutlich nicht weiß wonach ich genau suchen muss.

Hier die Infos zu meiner Installation:
Version 3.16.0+190225


Ich bin am erstellen einer Matrix Umfrage mit Zahlen.

Code:
Typ:   Matrix (Zahlen)
Pflichtangabe:   Ja
Relevanz-Gleichung:   1
Anzeige als Ankreuzfelder:   1

Ich möchte hier jetzt bei den Antwortoptionen entweder 1-3 oder 4 auswählbar machen.
(1,2,3 sollen alle gleichzeitig möglich sein)

Ist das möglich?

Vielen Danke für alle Tipps und Hilfe

The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
5 years 3 weeks ago #181182 by Joffm
Replied by Joffm on topic Auswahloptionen in Matrix Abfrage
Hallo,

die kleine Gemeinheit am Anfang:
Es steht im Handbuch:
manual.limesurvey.org/Workarounds:_Manip..._Excludes_All_Others

Okay, kurz erklärt:

Es genügt, folgendes JS script in den Fragetext einzufügen - natürlich im Quellcode-Modus:
Code:
<script type="text/javascript" charset="utf-8">
  $(document).ready(function() {
    // Call the exclude function using question ID
    excludeOpt({QID});
  });
 
  // A function to make the last option in each array row exclusive
  function excludeOpt (qID) {
 
    var thisQuestion = $('#question'+qID)
 
    // Add some classes to the checkbox cells
    $('td.checkbox-item', thisQuestion).addClass('normal-item');
    $('tr.subquestion-list', thisQuestion).each(function(i) {
      $('.normal-item:last', this).removeClass('normal-item').addClass('exlusive-item')
    });
 
    // A listener on the checkboxes
    $('input[type="checkbox"]', thisQuestion).on('change', function (event) {
      handleExclusive($(this).closest('td'));
    });
 
    function handleExclusive(thisCell) {
 
      var thisRow = $(thisCell).closest('tr');
 
      // Uncheck the appropriate boxes in a row
      if ($(thisCell).hasClass('normal-item')) {
        $('.exlusive-item input[type="checkbox"]', thisRow).prop('checked', false);
      }
      else {
        $('.normal-item input[type="checkbox"]', thisRow).prop('checked', false);
      }
 
      // Check conditions (relevance)
      $('td.checkbox-item', thisRow).each(function(i) {
        var thisValue = '';
        if($('input[type="checkbox"]', this).is(':checked')) {
          thisValue = 1;
        }
        var thisSGQA = $('input[type="checkbox"]', this).attr('id').replace(/cbox_/, '');
 
        $('input[type="hidden"]', this).attr('value', thisValue);
        fixnum_checkconditions(thisValue, thisSGQA, 'hidden');
      });
    }
  }
</script>

Beispiel:

File Attachment:

File Name: limesurvey...3693.lss
File Size:24 KB


Viel Erfolg
Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The following user(s) said Thank You: jo2019
The topic has been locked.
  • jo2019
  • jo2019's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
5 years 3 weeks ago #181185 by jo2019
Replied by jo2019 on topic Auswahloptionen in Matrix Abfrage
Hat funktioniert!

DANKE
The topic has been locked.
  • jo2019
  • jo2019's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
5 years 3 weeks ago #181186 by jo2019
Replied by jo2019 on topic Auswahloptionen in Matrix Abfrage
Hi,
mir ist jetzt beim ausgiebigeren testen aufgefallen,
das wenn ich die Frage als Pflicht mache und nicht alles ausgefüllt habe, beim zweiten mal absenden alte Angaben verschwinden.

Beispiel:
in Runde 1 wähle ich nur Antwort 1von4
-> Hinweis das Pflicht
in Runde 2 wähle ich nun noch zusätzlich Antwort 2
-> Hinweis das Pflicht und entweder es verschwindet alles vorherig ausgewählte oder nur Antwort 1

Manchmal verschwindet in Runde2 auch schon die Antwort aus Runde1.


Kann mir das gerade nicht erklären, habe ich etwas falsch gemacht beim hinzufügen?
Ich war im Quellcode Modus der Frage und das mit der Auswahl funktioniert eigentlich auch sauber.

Danke
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
5 years 3 weeks ago #181193 by Joffm
Replied by Joffm on topic Auswahloptionen in Matrix Abfrage
Dann solltest Du uns eine Beispielstudie mit nur dieser Frage einmal zusenden als *.lss.


Bis dann
Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
  • jo2019
  • jo2019's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
5 years 3 weeks ago #181195 by jo2019
Replied by jo2019 on topic Auswahloptionen in Matrix Abfrage
Hi kann ich gerne machen.

Hoffe die Bilder machen klar was ich meine




Ich habe es auch nochmals ohne das "neue" Script getestet,
dann verschwindet die gemachte Auswahl sogar direkt nach der ersten Meldung das es nicht ausgefüllte Pflichtfelder gibt.


Habe es mit dem Firefox 65 und dem Chrome 72 getestet, bei beiden gleich.
Wäre für jeden Tipp dankbar wo ich da was falsch gemacht habe


Danke
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
5 years 3 weeks ago - 5 years 3 weeks ago #181205 by Joffm
Replied by Joffm on topic Auswahloptionen in Matrix Abfrage
Hallo,
bevor ich es mir anschaue:
Es gibt natürlich auch die "normale" Methode mit Bordmitteln, sprich "Fragenvalidierung".
Y001, Y002,.. sind die Coddes der Senrechten, X004 ist der Code von "Keine"
Fragenvalidierungsgleichung:
((self.sq_Y001_X004!=1) or (sum(self.sq_Y001)==1)) and
((self.sq_Y002_X004!=1) or (sum(self.sq_Y002)==1)) and
((self.sq_Y003_X004!=1) or (sum(self.sq_Y003)==1)) and
((self.sq_Y004_X004!=1) or (sum(self.sq_Y004)==1))

Fragenvalidierungs-Hinweis:
{if(((self.sq_Y001_X004!=1) or (count(self.sq_Y001)==1)) and
((self.sq_Y002_X004!=1) or (count(self.sq_Y002)==1)) and
((self.sq_Y003_X004!=1) or (count(self.sq_Y003)==1)) and
((self.sq_Y004_X004!=1) or (count(self.sq_Y004)==1)),"","Entweder 'Keine' anklicken oder eine oder mehrere der anderen Optionen")}

Dann gibt es so etwas:


Joffm

Übrigens: Dein Beispiel läuft bei mir wie gewünscht.
Ich benutze zur Zeit Version 3.15.8+190130

Werde mal das Update installieren. Mal sehen.

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 5 years 3 weeks ago by Joffm.
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
5 years 3 weeks ago #181216 by Joffm
Replied by Joffm on topic Auswahloptionen in Matrix Abfrage
Hallo,
das ist sehr merkwürdig.
Ich konnte es weder in bootswatch noch fruity noch in von mir aus vanilla gebauten Templates reproduzieren.
Allerdings im neuen tfr responsive von Tammo.

Aber Du scheinst ja auch nur das simple fruity zu benutzen.

Strange.

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
  • jo2019
  • jo2019's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
5 years 3 weeks ago #181253 by jo2019
Replied by jo2019 on topic Auswahloptionen in Matrix Abfrage
Hi,
ich habe es jetzt nochmals von einem Komplett anderen Gerät aus versucht,
und der Fehler bleibt leider der gleiche. :(

(Eigentlich sogar noch schlimmer, ohne dein Script verliert er sofort die Antworten, mit Script erst beim zweiten mal abschicken).

Jetzt auch nochmal mit einem Android Handy und Chrome getestet, auch da tritt der Fehler auf.

Ich bin etwas ratlos woran es liegen könnte.

Könnte es an der PHP Version liegen?
Code:
PHP Version 7.0.33-0+deb9u1
Server API   FPM/FastCGI

Aber eigentlich doch eher JavaScript? Kenne mich da etwas zu wenig aus, aber wie wird die Validierung gemacht und die alten Antworten wieder ins Formular übertragen?

Wäre für jeden Tipp sehr dankbar!

Grüße
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
5 years 3 weeks ago #181255 by Joffm
Replied by Joffm on topic Auswahloptionen in Matrix Abfrage
Da es bei mir nicht reproduzierbar ist, habe ich die Studie einmal in die Demo importiert.
Dort ist es reproduzierbar.
Kannst Du Dir ja einmal selbst anschauen.
SurveyID: 496142

Da das script ja eigentlich ziemlich straightforward ist (sogar von mir lesbar, der ich auch damit kokettiere, JS nicht zu können) und auch schon lange im Gebrauch, muss es wohl an irgendwelchen Umgebungsvariablen liegen. Da ist die Suche oftmals schwierig.

Gut, Du kannst jetzt einen Bugreport machen.

Da ich nicht weiß, wie es terminlich aussieht, würde ich an Deiner Stelle einfach auf die "Standardlösung" mit Fragenvalidierung zurückgreifen.
Fragenvalidierungsgleichung:
((self.sq_Y001_X004!=1) or (sum(self.sq_Y001)==1)) and
((self.sq_Y002_X004!=1) or (sum(self.sq_Y002)==1)) and
((self.sq_Y003_X004!=1) or (sum(self.sq_Y003)==1)) and
((self.sq_Y004_X004!=1) or (sum(self.sq_Y004)==1))

Fragenvalidierungs-Hinweis:
{if(((self.sq_Y001_X004!=1) or (count(self.sq_Y001)==1)) and
((self.sq_Y002_X004!=1) or (count(self.sq_Y002)==1)) and
((self.sq_Y003_X004!=1) or (count(self.sq_Y003)==1)) and
((self.sq_Y004_X004!=1) or (count(self.sq_Y004)==1)),"Bitte, entweder 'Keine' anklicken oder eine oder mehrere der anderen Optionen","Entweder 'Keine' anklicken oder eine oder mehrere der anderen Optionen")}


Damit wird den Respondenten im Falle, dass sie irgendetwas zusammen mit "None" anklicken, ziemlich deutlich "hingeknallt", dass sie Blödsinn gemacht haben.





Joffm

P.S. Ich habe es jetzt auch noch in einer anderen Installation (Version 3.15.5+181115) getestet, die unter php 7.1. läuft.
Daran liegt es also nicht.

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
  • jo2019
  • jo2019's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
5 years 3 weeks ago #181260 by jo2019
Replied by jo2019 on topic Auswahloptionen in Matrix Abfrage
Hi,
meine Vermutung ist, dass es nicht an dem Script von dir liegt, sondern generell ein Fehler in der Übernahme von den Werten zum Vorausfüllen der neuen Seite zu sein scheint. (Komischer weise nur bei genau dem Typ an Frage, habe es noch bei anderen getestet und da funktioniert es einwandfrei, nur bei diesem Typ geht es immer schief)

Wie kann ich einen Bugreport aufmachen?

Mein größeres Problem ist gefühlt aktuell, dass ich Antworten verliere wenn nicht alle angegeben wurden, als das eventuell eine inkonsistente Auswahl gemacht wurde. Da es bei mir am Ende knapp 20 Fragen auf der Seite sein werden, wird das vermutlich irgendwo bestimmt mal passieren. Als Nutzer hätte ich keinen Bock dann nochmals alles zu wiederholen.

Da man schnell mal eine Frage unbeabsichtigt übersieht, fände ich Pflichtfelder eigentlich ganz gut wegen dem Hinweis, aber aktuell schwanke ich zwischen Vollständigkeit und Nutzbarkeit.

Danke
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
5 years 3 weeks ago #181262 by Joffm
Replied by Joffm on topic Auswahloptionen in Matrix Abfrage
Naja, dann ist Deine Option ja klar:
Nimm nicht die Version mit JS, sondern nimm die normale Fragenvalidierung.

Bug Report: In demselben Menue, in welchem Du das Forum aufrufst, ist der "Bug Tracker".

BIs dann
Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
Moderators: Joffm

Lime-years ahead

Online-surveys for every purse and purpose