Welcome to the LimeSurvey Community Forum

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

Mehrfachantworten und übergreifende Maximalpunkte

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 year 3 days ago #242918 by Joffm
So, jetzt ist auch die Aktualisierung der Bestellsumme geklärt.
Einfach noch ein "trigger('keyup')" an das Löschen der Eingabe hängen

$(arrayRow + '[name="visible"]:last input[type="text"]').val('').trigger('keyup');

Ich glaube, die Farbe "zinn" hat keinen Code.

Joffm

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

Please Log in to join the conversation.

  • moritz0903
  • moritz0903's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
1 year 3 days ago - 1 year 3 days ago #242923 by moritz0903
Super, vielen Dank! Der Fix hat funktioniert, ich habe parallel auch was probiert, das ging auch aber so ist es eleganter. Danke auch für den Fehler bei Zinn, das ist mir durchgerutscht.

Noch eine Frage: Trotz Deines Matrix-Tutorials schaffe ich es bei Antworten nicht, mir statt des Codes den Wert des Dropdowns (also z.B. "T-Shirt" statt "1" bei X001) anzeigen zu lassen. Probiert habe ich diese Zeilen hier:

Code:
var selectval = $('select.inserted-select option', thisCell).filter(function () { return $(this).html() == inputText; }).val();
$('select.inserted-select', thisCell).val(selectval);

Allerdings ist mir nicht ganz klar, welchen Wert LimeSurvey dann in die Antwort Tabelle schreibt. Mache ich etwas falsch?

Danke und schönes verlängertes Wochenende!
Last edit: 1 year 3 days ago by moritz0903.

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 year 3 days ago #242925 by Joffm
Nee, Du machst nichts falsch.

Vielmehr habe ich im Tutorial etwas übersehen: Der Listener muss auch angepasst werden.

Hiermit klappt es
Code:
    // Listeners on select elements
    $('.inserted-select', thisQuestion).on('change', function(i) {
      if($(this).val() != '') {
        $(this).closest('.answer-item').find('input:text').val($.trim($('option:selected', this).text())).trigger('keyup');
      }
      else {
        $(this).closest('.answer-item').find('input:text').val('').trigger('keyup');
      }
    });
 
    // Returning to page
    $('.with-select input:text', thisQuestion).each(function(i) {
      var thisCell = $(this).closest('.answer-item');
      var inputText = $.trim($(this).val());
      var selectval = $('select.inserted-select option', thisCell).filter(function () { return $(this).html() == inputText; }).val();
      $('select.inserted-select', thisCell).val(selectval);
    });

 

Joffm


 

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

Please Log in to join the conversation.

  • moritz0903
  • moritz0903's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
1 year 2 days ago #242940 by moritz0903
Super, vielen Dank! Damit geht es, allerdings hat es die Logik für die Validierung und Zwischenberechnung zerstört, weil die Werte nicht mehr mit den Nummern, sondern Text codiert sind. Man muss bei den Vergleichen folgende Änderung vornehmen:
Code:
if(Q1_Y001_X001.NAOK==1,Q1_Y001_X002.NAOK*10, 0)
wird zu:
Code:
if(strcmp(strtolower(Q1_Y001_X001.NAOK), "t-shirt")==0, Q1_Y001_X002.NAOK*10, 0)

Analog für die anderen Vergleiche, ich habe PHP strcmp  verwendet, evtl. geht es auch eleganter.

VG und nochmal Danke!

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 year 2 days ago #242941 by Joffm
Ja, klar.
Man kann es sich unnötig kompliziert machen.
Mit Texten lassen sich eben nur wenige Operationen durchführen. (gerade einmal "gleich - ungleich")
Daher benutze ich immer numerische Codes; damit ist man einfach flexibler.
Z.B. wenn Du doch noch die Preiserhöhung bei großen Größen einbauen willst. Dann genügt "X004>...".
Hier ginge ja noch "X004<'A' ", da '3XL' und die anderen eben im alphanumerischen Vergleich kleiner sind.
Aber trotzdem.

Und wenn Du am Ende jedem Teilnehmer noch einen Ausdruck seiner Bestellung (mit pdfReport) anbieten willst, sind die Werte ja leicht in beliebige Texte umgestellt.
Ebenso nach Export der Daten nach Excel (lookup).

Das als Plädoyer für numerische Codes.
​​​​​
Schönes Wochenende
Joffm 

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

Please Log in to join the conversation.

  • moritz0903
  • moritz0903's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
1 year 1 day ago #242946 by moritz0903
Um diesen Thread abzuschließen: anbei sind beide Versionen mit allen Korrekturen und funktionierender Berechnung. Einmal die Datei mit den Antworten und der Logik als Text und einmal mit Antworten + Logik als numerische Codes. In meinem Fall wurden es dann die Codes, weil es einfach einfacher ist. Vielleicht kann aber jemand die andere Variante brauchen :-) 

VG und schönen Feiertag!
Moritz
Attachments:
The following user(s) said Thank You: Joffm

Please Log in to join the conversation.

Moderators: Joffm

Lime-years ahead

Online-surveys for every purse and purpose