• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

if/else condition funktioniert nicht ganz

Lux

Neues Mitglied
Heyho!

Ich habe da ein total dringendes Problem. über meinen Newsletter kann ich einen Produktparagraphen hinterlegen, der sich durch Platzhalter auch den Streichpreis zieht. Der ist aber manchmal auch als "0.00" hinterlegt, deshalb würde ich gerne eine if/else Kondition angeben. Der Paragraph war schon voreingestellt und sieht seit meiner Anpassung so aus:

Code:
<table border="0" cellpadding="0" cellspacing="0" width="100%">
   <tbody>
      <tr>
         <td align="center" valign="middle" width="100%" height="300">
         <a href="$link1UrlValue" display="block">
            <img alt="$link1TextValue jetzt kaufen" src="$image1ImageUrlValue" width="100%" />
         </a>
         </td>
      </tr>
      <tr>
         <td height="10" style="font-size:1px; line-height:1px; mso-line-height-rule:exactly;">&nbsp;</td>
      </tr>
      <tr>
         <td align="center" style="font-family:'Arial', sans-serif; font-size:14px; color:#000000; strong;">
            <b>$text4Value $text8Value $text5Value</b></td>
      </tr>
      <tr>
         <td height="10" style="font-size:1px; line-height:1px; mso-line-height-rule:exactly;">&nbsp;</td>
      </tr>
      <tr>
         <td align="center" style="font-family:'Arial', sans-serif; font-size:14px; color:#000000;">
           Nur $text2Value €</td>
      </tr>
      <tr>
         <td height="10" style="font-size:1px; line-height:1px; mso-line-height-rule:exactly;">&nbsp;</td>
      </tr>
      <tr>
         <td align="center" style="font-family:'Arial', sans-serif; font-size:14px; color:#B22222;">
            statt <strike>$text3Value</strike> €</td>
      </tr>
      <tr>
         <td height="20" style="font-size:1px; line-height:1px; mso-line-height-rule:exactly;">&nbsp;</td>
      </tr>
      <tr>
    #if($image1ImageUrlPresent)
         <td align="center">
         <a href="$link1UrlValue">
           <img alt="Jetzt kaufen!" src="http://img.srv2.de/bm/173084546154/187621801791.png" />
         </a>
         </td>
    #end
      </tr>
   </tbody>
</table>

Soweit so gut, hier funktioniert alles. ABER, dort wo "$Text3Value" steht hätte ich gerne, dass wenn der Wert "0.00" oder kleiner als "1" ist, dass eine komplette Leerzeile hinterlegt wird. Wenn der Wert größer ist, soll dann eben <td align="center" style="font-family:'Arial', sans-serif; font-size:14px; color:#B22222;"> statt <strike>$text3Value</strike> €</td> dort stehen.

Ich bin leider Anfänger und mein selbst irgendwie zusammengebasteltes snippet funktioniert nicht, da die Syntax auf dem Server ein wenig anders ist als gewöhnlich. Mein Versuch sah so aus:

Code:
 #if($text3Value < 1)

       </ br>

#else
         <td align="center" style="font-family:'Arial', sans-serif; font-size:14px; color:#B22222;">
            statt <strike>$text3Value</strike> €</td>

    #end

Wenn ihr mir da helfen könntet, wäre das supi.

LG
Lux
 
Wenn ich dich richtig verstanden habe, könnte man es so machen.
*** Link entfernt, weil nicht mehr erreichbar ***
Irgendwie habe ich das Gefühl, dass du gerade überhaupt nicht weiter kommst ,weil dein Code irgendwie HTML, CSS, JS, PHP alles auf einmal ist.
$text3Value, das könnte js oder PHP sein. Könntest du mal dein ganzes Script posten? Falls du noch weitere Hilfe brauchst, wäre das zum Vorteil. Weil mit den Codeschnipsel kann, man nicht erkennen, was du da genau vorhast .
Außerdem, du solltest mal deine CSS überarbeiten.
Am besten wäre die CSS auszulagern ,also kein Inline style.
Die alten Tags wie <strike> <b> sollte man in HTML5 auch nicht verwenden.
 
Zuletzt bearbeitet:
Danke für die schnelle Antwort!
Leider kann ich gar nichts auslagern, mir steht lediglich das eine HTML-Textfeld zur Verfügung. In dem Fall habe ich auch nicht nur einen Schnipsel gepostet, sondern den ganzen Code aus diesem Feld. Auf etwas anderes habe ich keinen Zugriff. Dementsprechend funktioniert dein Code auch leider nicht :( $text3Value sind einfach nur Platzhalter des Newsletter-Servers. Das sind Werte, die über eine Content-Schnittstelle übermittelt werden.

Mit den Tags hast du recht, die habe ich mal angepasst.
 
Zuletzt bearbeitet:
Welchen Link genau bräuchtest du denn? Es handelt sich um einen Newsletter-Anbieter, das heißt die Darstellung siehst du nur über den Newsletter selber.
 
Zuletzt bearbeitet:
Hi,

was funktioniert genau nicht? Kriegst du einen Syntax error, oder wird etwas anderes ausgegebene als du erwartest?
Ohne deinen Anbieter zu kennen, oder welche Sprache das ist die dort benutzt wird kann ich schwer was sagen. In der Regel müsste es von deinem Anbieter dafür eine Dokumentation geben.

Ansonsten würde ich es grob so machen, und auf gleiche Einrückung achten:
Code:
#if($text3Value < 1)
    test1
#else
    test2
#end

oder

Code:
#if($text3Value == "0.00")
    test1
#else
    test2
#end
 
was funktioniert genau nicht? Kriegst du einen Syntax error, oder wird etwas anderes ausgegebene als du erwartest?

Das ganze Newsletter-Layout ist dann total zerschossen...

Ohne deinen Anbieter zu kennen, oder welche Sprache das ist die dort benutzt wird kann ich schwer was sagen. In der Regel müsste es von deinem Anbieter dafür eine Dokumentation geben.

Leider gibt es so gar nichts. Ich bin auf epi-server unterwegs und die wollen natürlich, dass ich für die Anpassung des Paragraphen bezahle, deshalb geben die einem nur sehr spärliche Informationen... Ich hatte gehofft es so regeln zu können, da die da teilweise 500 € für irgendwelche Kleinigkeiten haben wollen.

Deinen ersten Vorschlag hatte ich ja schon versucht, da ging es nicht. Bei deinem zweiten Vorschlag ist leider auch wieder alles zerschossen. Ich verstehe das echt nicht so ganz. Bei der voreingestellten #if Kondition geht es ja auch...

Am besten schickst du mal Alle links die dazu gehören und alles was du an code dazu hast

Wie gesagt, das ist alles an code was ich habe und links gibt es ja keine, da es sich um einen Newsletter handelt... :/
 
In der Dokumentation gibt es einen Punkt "Velocity-Klassen und -Funktionen".

Eventuell reicht es mein erstes Beispiel zu Ändern, wenn es nur bestimmte Operatoren zur verfügung gibt:

Code:
#if($text3Value <= 0)
    test1
#else
    test2
#end

Ansonsten bin leider auch ratlos.
 
In der Dokumentation wird unterschieden, ob es sich bei der Vergeichsvariable um eine Zahl oder um einen String (Zeichenkette) handelt.
Wenn $text3Value eine Zeichenkette ist, dann muss das if-Statement '#if($test3Value != "0.00")' lauten - ich glaube kaum, dass in dem Fall ein größer/gleich Vergleich funktioniert.
 
Danke an euch beide für die Hilfe! Leider hat beides nichts gebracht. Aber [ICODE#if($test3Value != "0.00")'][/ICODE] hat es zumindest nicht zerschossen, so wie alle anderen Versuche. Ich glaube ich gebe es nun auch auf und werde einfach keinen Streichpreis angeben...
 
Zurück
Oben