Welcome to the LimeSurvey Community Forum

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

einzelne Antwortzellen in einer Matrix-Texte Abfrage ausblenden

  • Christine333
  • Christine333's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
9 months 4 weeks ago #244759 by Christine333
Bitte helfen Sie uns, Ihnen zu helfen und füllen Sie folgende Felder aus:
Ihre LimeSurvey-Version: Limesurvey Community Edition: 5.6.3+230130
Eigener Server oder LimeSurvey-Cloud: eigener Server
Genutzte Designvorlage:fruity
==================Hallo,bitte um Ihre Unterstützung, ich habe schon sehr lange mit ersten Programmierversuchen herumprobiert (bin ein völliger Anfänger).Mein Ziel: einzelne Antwortzellen in einer Matrix-Texte Abfrage ausblenden.Es geht um folgende Frage:Frage Code: F5Fragetyp Matrix (Texte)  mit 3 x 3 TeilfragenY-Scale: Y1, Y2, Y3X-Scale: X1, X2, X3 Ich möchte zwei Antwortzellen (deren Abfrage keinen Sinn ergeben) ausblenden: Y3_X2 und Y3_X3 Mein letzter Versuch:$(document).ready(function() {    // Remove Y3_X2$('#question{F5} tr.subquestion-list:Y3.answer_cell_X2*').remove();    // Remove Y3_X3$('#question{F5} tr.subquestion-list:Y3.answer_cell_X3*').remove();  });   Allgemeine Fragen:1.      Wo muss ich den Skript-Code einfügen? Liege ich richtig, dass ich den Programmcode in das Feature Skript eingeben soll? (neben Frage, Hilfe gibt es das Feature Skript)?2.      Kann man irgendwie nachvollziehen, ob ein Skript grundsätzlich ausgeführt wird? Bzw. gibt es hier auch Fehlermeldungen? Fragen zum Programmcode:1.      Ist der Programmcode, den ich probiert habe unvollständig?2.      Was soll ich wie ändern?Vielen Dank im Voraus für Ihre Hilfe,LG Christine

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
9 months 4 weeks ago #244761 by Joffm
Hallo, Christine,

da ich jetzt einen anderen Termin habe, habe ich keine Zeit, den vom Editor verhunzten Text zu entziffern.
Du hättest jetzt die Gelegenheit, den Text noch einmal zu formatieren.
Zusätzlich: Um Code anzuzeigen, benutze bitte den Button (den mit den beiden spitzen Klammern)

Vielleicht kannst Du auch einen lss-Export der Umfrage schicken. Ist für uns immer die beste Lösung.

Bis dann
Joffm
 

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

Please Log in to join the conversation.

  • Christine333
  • Christine333's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
9 months 4 weeks ago #244763 by Christine333
Hallo,
danke für Ihre rasche Antwort, ich formuliere meine Anfrage gerne nochmal.
Mein Anliegen: einzelne Antwortzellen in einer Matrix-Texte Abfrage ausblenden.

Es geht um folgende Frage:
Frage Code: F5
Fragetyp Matrix (Texte)  mit 3 x 3 Teilfragen
Y-Scale: Y1, Y2, Y3
X-Scale: X1, X2, X3 

Ich möchte zwei Antwortzellen (deren Abfrage keinen Sinn ergeben) ausblenden: Y3_X2 und Y3_X3 

Mein letzter Versuch:

$(document).ready(function() {    // Remove Y3_X2$('#question{F5} tr.subquestion-list:Y3.answer_cell_X2*').remove();    // Remove Y3_X3$('#question{F5} tr.subquestion-list:Y3.answer_cell_X3*').remove();  });   

Allgemeine Fragen:
1. Wo muss ich den Skript-Code einfügen? Liege ich richtig, dass ich den Java- 

File Attachment:

File Name: limesurvey...2273.lss
File Size:26 KB
Programmcode in das Feature Skript eingeben soll? (neben Frage, Hilfe gibt es das Feature Skript)?
2. Kann man irgendwie nachvollziehen, ob ein Skript grundsätzlich ausgeführt wird? Bzw. gibt es hier auch Fehlermeldungen? 

Fragen zum Programmcode:
1. Ist der Programmcode, den ich probiert habe unvollständig?
2. Was soll ich wie ändern?

Vielen Dank im Voraus für Ihre Hilfe,
LG Christine

Please Log in to join the conversation.

  • Christine333
  • Christine333's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
9 months 4 weeks ago #244764 by Christine333

File Attachment:

File Name: limesurvey...6-30.lss
File Size:26 KB
ochmal der  lss-Export der Umfrage mit eingefügtem Skript,

LG Christine

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
9 months 4 weeks ago - 9 months 4 weeks ago #244769 by Joffm
Hallo, Christine,
ich weiß nicht, woher das script stammt.
$('#question{F5} tr.subquestion-list:Y2.answer_cell_X2*').remove();   
​​​​​Du hast schon einmal den großen Fehler gemacht, dass Du die Variable {QID} nach {F5} geändert hast.
{QID} ist ein wohldefinierter Platzhalter, der die aktuelle FragenID enthält.
Wenn Du dies ändern willst, müsstest Du auch diese einsetzen, nämlich diese hier
 
Und auch ohne die geschweiften Klammern. Aber das vergisst Du jetzt schnell; dies musste man in Versionen benutzen, als es noch kein ExpressionScript gab, vielleicht so 1.8. vor 2015( also Steinzeit).

Gut, weiter
Du willst auf die Zeile "Y2" zugreifen mit
tr.subquestion-list:Y2
Das ist einfach falsche Syntax. Dies ist ja die Liste der Teilfragen. Also musst Du auf das entsprechende Element über den Index zugreifen, mit "eq(x)".
Da der erste Index "0" ist, wäre die dritte Zeile also
tr.subquestion-list:eq(2)

Und jetzt kommt die Spalte. Dies ist  auch leider nur fast richtig.
1. Du musst auf die Zelle zugreifen, also entsprechend der Zeile (tr), hier mit td.
2. Diese beiden Elemente "tr" und "td" sind nicht auf einer Ebene. Zu einem tr gibt es mehrere tds (Jede Zeile enthält mehrere Spalten.
Da muss ein Zwischenraum her.
Gibt insgesamt:
$('#question{QID} tr.subquestion-list:eq(2) td.answer_cell_X2*').remove();   

 


Zur Frage, wo das script hinkommt.
Persönlich füge ich scripte immer in den Quellcode der Frage ein, hier dann mit den <script>...</script> tags umschlossen.
Dies ist aber Gewohnheitssache aus Zeiten, als es diesen Script-Tab noch nicht gab.

Hier noch einmal das gesamte script, ohne die tags.
Code:
$(document).ready(function() {   
  // Remove Y3_X2
   $('#question{QID} tr.subquestion-list:eq(2) td.answer_cell_X2*').remove();   
  //  Remove Y3_X3
    $('#question{QID} tr.subquestion-list:eq(2) td.answer_cell_X3*').remove();  
});   


Letzte Frage: Wie kann man testen dass javascript allgemein funktioniert?
In der ersten Frage füge in den Quellcode ein
Code:
$(document).ready(function() { 
  alert('Hier spricht javascript");
});


Wenn es dann nicht zu Dir spricht, hast Du wohl keine Rechte, javascript einzusetzen.

Und jetzt der Dank an Dich.
In meinem "Tutorial 1: Matrizen", Kap. 13.3. schrieb ich noch, dass es mir in einer Matrix(Texte) nicht gelungen war, Zellen zu entfernen, wie bei den anderen Matrixtypen. Daher zeige ich dort , wie man sie ausgraut und auf "disabled" setzt. Hier einmal das Bild dazu.
 

Durch Deine Frage habe ich also gelernt, wie man diese Zellen entfernt.

Aber Du kannst Dir meine Tutorials ja trotzdem zu Gemüte führen. Findest Du alle hier im deutschen Teil auf einer der Folgeseiten (Seite 7, 8, oder so)

Samsung
Joffm

 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 9 months 4 weeks ago by Joffm.

Please Log in to join the conversation.

  • Christine333
  • Christine333's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
9 months 3 weeks ago #244771 by Christine333
Herzlichen Dank für Deine rasche Hilfe und deine ausführliche Erklärung!
Wie gesagt...ich bin ein Anfängerprogrammierer, jetzt geht's weiter, danke!!!
Ich war schon am Ende meiner Geduld,
freut mich sehr, dass meine Frage auch dir ein Stück weiter geholfen hat, 
werde deine Tutorien studieren, danke für den Hinweis!

Melde mich nochmal, nach der Umsetzung,

LG Christine

 

Please Log in to join the conversation.

  • Christine333
  • Christine333's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
9 months 1 week ago #245130 by Christine333
Vielen herzlichen Dank nochmal für Ihre Hilfe, das Ausblenden von Antwortzellen in einer Matrix-Texte-Frage funktioniert nun einwandfrei, ich komm gut voran mit der Entwicklung des Bogens.

Eine weitere Hürde hab ich auch überwunden ---- 'angeklickte' Radio Buttoms können ja nicht mehr 'ausgeklickt' werden ---- mit Hilfe "Matrix Zahlen" und "Anzeige" ---- "Ankreuzfelder an" funktioniert 'Hakerl setzen' und 'wieder rausnehmen'.

LG Christine Sickinger

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
9 months 1 week ago #245132 by Joffm
Hallo, Christine,
bitte, verwirre die Leute nicht.

Deine anfängliche Frage drehte sich um eine Matrix(Texte).

Was jetzt Deinen Zusatz angeht:
Bitte, missbrauche Fragetypen nicht!
Eine Matrix mit "Radio-Buttons" ist eine Einfachnennung; d.h. es wird EINE Option angeklickt.
Da solche Fragen ja im allgemeinen Pflichtfragen sind (Bewertungen) ist es auch unnötig, sie wieder zu leeren.
Und wenn Du partout diese Option haben möchtest, füge einfach die Antwortoption "weiß nicht / keine Angabe hinzu"
Im Vertrauen: Es gibt sogar ein script die Zeilen einer Matrix zu leeren. Findest Du in meinem Tutorial 1: Matrizen, Kap. 17

Eine Matrix(Zahlen) und Checkbox-Layout ist ja eine Mehrfachnennung; man kann mehrere Kästchen pro Zeile anklicken.
Wenn Du dies nun aber als Krücke für eine Einfachnennung "missbrauchen" willst, musst Du wieder validieren, dass nur die Wahl  eines Kästchen pro Zeile möglich ist.
Das ist aber alles nur umständlich und für den Teilnehmer nicht besonders angenehm.

Nur so nebenbei

Samsung
Joffm

 

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

Please Log in to join the conversation.

  • Christine333
  • Christine333's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
9 months 6 days ago #245160 by Christine333
Entschuldige die Verwirrung - wollte nur nochmal ein positives Feedback geben und ausdrücken, dass ich gut klar komme. Danke für den super Service!

Punkt 2 (Häkchen - Radio-Buttoms) betrifft eine neue Frage und ist hier nicht mehr relevant.

Please Log in to join the conversation.

Moderators: Joffm

Lime-years ahead

Online-surveys for every purse and purpose