Welcome to the LimeSurvey Community Forum

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

Gleichung aus mehreren Gleichungen erstellen?

  • nina22
  • nina22's Avatar Topic Author
  • Away
  • New Member
  • New Member
More
22 hours 6 minutes ago #271175 by nina22
Liebes Team,

ich habe ein Problem mit der Erstellung einer Gleichung. Ich möchte gerne, dass 1 Kriterium auf jeden Fall erfüllt ist und eins von den anderen beiden, um darauf basierend eine Empfehlung oder Ablehnung als Rückmeldung zu geben. Dazu habe ich diese Gleichung erstellt:

if( SumBeps1  > 10 && (intval( Leid ) == 1 || intval( VMO ) == 1), '1', '0') 

Jedoch kommt bei der Gleichung immer 0 raus, auch wenn eigentlich die Kriterien erfüllt sind. Bei den einzelnen Kriterien habe ich vorher jeweile Gleichungen erstellt: Für das erste habe ich eine Summe aus 3 Items aus einer Matrix gebildet, für das zweite und dritte gibt jeweils eine 1 aus, wenn die Antwort auf dem jeweiligen Schiebregler über 5 ist. In einer Debug-Frage habe ich mir auch die einzelnen Ergebnisse der vorherigen Gleichungen ausgeben lassen und diese werden eigentlich richtig berechnet, trotzdem kommt am Ende bei dieser Gleichung immer 0 raus. Was habe ich falsch gemacht? 

Vielen Dank!

LG, Nina

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
21 hours 6 minutes ago - 19 hours 29 minutes ago #271178 by Joffm
Hallo, Nina,
Hm.
Das ist eine gute Frage.
Das Beste ist immer, sich die einzelnen Bedingungen und die Verknüpfungen in einer Textanzeige darzustellen.
Dabei zeigt sich, dass die Summe Beps zwar meinetwegen 13 ist, die Bedingung (Summe Beps > 10) aber nicht als WAHR gesehen wird.
Ich weiß noch nicht, warum, ist für mich und Dich auch nicht so dringend. Ich werde aber weiter schauen.
EDIT:
Und ich habe geschaut. Es hätte mir auch sofort einfallen sollen, da dies recht häufig passiert.


In Deinen Gleichungen ist zusätzlicher HTML-Code.
Was bedeutet das?
In der Datenbank wird hierbei
<p data-end="1548" data-start="1449">{sum (bepsneu_beps1.NAOK, bepsneu_beps2.NAOK, bepsneu_beps3.NAOK)}<br /> </p>
nicht z.B. 13 gespeichert, sondern <p data-end="1548" data-start="1449">13<br /> </p>
Und dann soll mit diesem langen Text weiter gerechnet werden. Das geht natürlich in die Hose.
Also mach dies weg, lass auch das "intval" weg und speichere Zahlen, nicht Texte (also ohne Anführungszeichen)
Dann geht es auch.
{if(SumBeps1 > 10 && (Leid==1 || VMO==1), 1, 0)}

Denn warum diese ganzen Hilfsergebnisse?
Es genügt doch
{if(sum (that.bepsneu.sq_bepa.NAOK)>10 AND (Leidneu_01>5 OR VMOneu_01>5), 1, 0)}
Hier siehst Du, dass ich die ersten drei Teilfragen von bepsneu in _bepa1, bepa2,... geändert habe.
Dann kannst Du nämlich alles auf einmal mit "that" erschlagen und musst nicht jede teilfrage einzeln in die Funktion eintragen.

Gut, damit bekommst Du einen Eintrag im Datensatz (unter "Ergebnis"), nämlich 0 oder 1.

File Attachment:

File Name: limesurvey...93_J.lss
File Size:73 KB


Samsung
Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 19 hours 29 minutes ago by Joffm.

Please Log in to join the conversation.

  • nina22
  • nina22's Avatar Topic Author
  • Away
  • New Member
  • New Member
More
3 hours 32 minutes ago #271185 by nina22
Hallo Joffm,

super, nun hat es geklappt, du bist genial! Eine Frage hätte ich noch und zwar möchte ich bei der letzten Frage (die Rückmeldung) als Feedback auch Fotos einbauen. Wenn ich das ganz normal über das Foto-Icon mache, geht es leider nicht wirklich, ich vermute etwas am (HTML?)Code stimmt nicht?

LG

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 hours 36 minutes ago #271187 by Joffm
Hallo, Nina,
diesen "Salat"
Code:
<p>{if(Ergebnis == 1,<br />"<br /><br /><br /><img alt="" src="/upload/surveys/567412/images/Bild1.png" style="width:100px; height:121px;" /></p>
 
<p>Vielen Dank für die Beantwortung der Fragen! Basierend auf deinen Antworten empfehlen wir dir eine Anmeldung zu unserem Angebot.</p>
<br /><br /><br /><img alt="" src="/upload/surveys/567412/images/Bild2.png" style="width:100px; height:117px;" />",<br />"
<p>Vielen Dank für die Beantwortung der Fragen. Basierend auf deinen Antworten raten wir dir von einer Anmeldung ab!</p>
"<br />)}<br /> 
<p> </p>
habe ich mir gar nicht weiter angeguckt.

Was auf den ersten Blick zu sehen ist: Du hast immer doppelte Anführungszeichen verwendet.
Das geht nicht, da ein Programm natürlich nicht wissen/entscheiden kann, ob das plötzlich auftauchende Anführungszeichen der Abschluss einer vorherigen Anführung sein soll oder der Beginn einer weiteren.

Wie z.B. hier
Meine Mutter sagte: "Ich möchte nicht, dass Du Dir den Film "Klaus fährt mit der Barkasse "Helgoland" nach Lummerland" ansiehst".
Ein Programm geht jetzt davon aus, dass die wörtliche Rede der Mutter nach Film" beendet ist und weiß nichts mit dem Rest anzufangen.
Langer Rede kurzer Sinn: Solche verschachtelten Anführungszeichen müssen immer abwechseln (doppelt - einfach, oder umgekehrt)
Also:
Meine Mutter sagte: "Ich möchte nicht, dass Du Dir den Film 'Klaus fährt mit der Barkasse "Helgoland" nach Lummerland' ansiehst".
Das war jetzt etwas Grundsätzliches.

Nun zur eigentlichren Einbindung.
Du machst es zwar prinzipiell richtig, aber wieder etwas umständlich.
Die Variable "Ergebnis" enthält doch einen Wert 0 oder 1. Den kannst Du doch direkt bei der Auswahl des Bildes verwenden, nämlich "Bild{Ergebnis}.png".
Und wenn Deine Bilder eben "Bild1 und Bild2 heißen müssen, änderst Du die Gleichung "Ergebnis" entsprechend (dass 1 oder 2 herauskommt). Oder ändere die Bildnamen.

Dann kannst Du dies machen:
(Darstellung im Quellcode)
Code:
<p><img alt="" src="/upload/surveys/{SID}/images/Bild{Ergebnis}.png" style="width:100px; height:121px;" /></p>
<p>Vielen Dank für die Beantwortung der Fragen!</p>
<p>Basierend auf deinen Antworten {if(Ergebnis==1,"empfehlen wir dir eine Anmeldung zu unserem Angebot.","raten wir dir von einer Anmeldung ab.")}</p>

Und mit meinen "berühmten" Bootbildern kommt dann so etwas heraus
Entweder
 
Oder
 

Schiebe aber die Gleichung "Ergebnis" in die vorherige Gruppe
 

Samsung

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

Please Log in to join the conversation.

Moderators: holchJoffmtpartner

Lime-years ahead

Online-surveys for every purse and purpose