首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AMPScript中的IF语句

AMPScript中的IF语句
EN

Stack Overflow用户
提问于 2014-07-18 17:39:44
回答 3查看 30.6K关注 0票数 1

我对if语句有一点问题,因为它只填充了最后一个elseif if

代码语言:javascript
复制
%%[IF @Add3 == "Y" AND @Add4 == "Y" AND @Add5 == "N" THEN
        SET @WhichNom1 = "1"
        SET @WhichNom2 = "2"

ELSEIF @Add3 == "Y" AND @Add4 == "N" AND @Add5 == "Y" THEN
        SET @WhichNom1 = "1"
        SET @WhichNom2 = "3"

ELSEIF @Add3 == "N" AND @Add4 == "Y" AND @Add5 == "Y" THEN
        SET @WhichNom1 = "1"
        SET @WhichNom2 = "3"
]%%
@WhichNom1
@WhichNom2
%%[ENDIF]%%

当最后一个ELSEIF为TRUE时,上面的代码将显示两个变量。要检查3条语句并显示每个场景的WhichNom1和WhichNom2,我需要做什么?

谢谢,丹

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-21 14:47:22

我设法使用两个IF语句以略有不同的方式对其进行排序

代码语言:javascript
复制
%%[IF @Add3 == "Y" AND @Add4 == "Y" AND @Add5 == "N" THEN
SET @WhichNom1 = "1"
SET @WhichNom2 = "2"
SET @Status = "T" 

ELSEIF @Add3 == "Y" AND @Add4 == "N" AND @Add5 == "Y" THEN
SET @WhichNom1 = "1"
SET @WhichNom2 = "3"
SET @Status = "T" 

ELSEIF @Add3 == "N" AND @Add4 == "Y" AND @Add5 == "Y" THEN
SET @WhichNom1 = "2"
SET @WhichNom2 = "3"
SET @Status = "T" 

ELSE

SET @Status = "F" 

ENDIF]%%

%%[IF @Status == "T" THEN]%%
@WhichNom1
@WhichNom2
%%[ENDIF]%%

谢谢你的帮助,Rob!

票数 2
EN

Stack Overflow用户

发布于 2014-07-18 18:34:00

只有当最后一个elseif if为true时,才会打印变量。

像这样移动它们:

代码语言:javascript
复制
...    
ELSEIF @Add3 == "N" AND @Add4 == "Y" AND @Add5 == "Y" THEN

        SET @WhichNom1 = "1"
        SET @WhichNom2 = "3"
]%%
%%[ENDIF]%%

@WhichNom1
@WhichNom2

所以他们在IF/ELSEIF之外。这样,它们将始终被打印出来,但变量将根据子句进行不同的设置。

编辑:

如果您只想在其中一个语句为真时打印变量,那么您需要(如前所述)在If语句中打印它们,或者您也可以:

代码语言:javascript
复制
SET @WhichNom1 = ""
SET @WhichNom2 = ""

在if语句之前,则在语句之后:

代码语言:javascript
复制
IF @WhichNom1 != "" THEN @WhichNom1
IF @WhichNom2 != "" THEN @WhichNom2

因此,只有当它们被设置为"“以外的值时,才能打印它们。

票数 3
EN

Stack Overflow用户

发布于 2014-10-23 04:47:55

罗伯是对的。另外,如果您想在AMPscript块之外打印@WhichNom1@WhichNom2,您可能需要编写如下代码:

代码语言:javascript
复制
%%[
IF @Add3 == "Y" AND @Add4 == "Y" AND @Add5 == "N" THEN
SET @WhichNom1 = "1"
SET @WhichNom2 = "2"
SET @Status = "T" 

ELSEIF @Add3 == "Y" AND @Add4 == "N" AND @Add5 == "Y" THEN
SET @WhichNom1 = "1"
SET @WhichNom2 = "3"
SET @Status = "T" 

ELSEIF @Add3 == "N" AND @Add4 == "Y" AND @Add5 == "Y" THEN
SET @WhichNom1 = "2"
SET @WhichNom2 = "3"
SET @Status = "T" 

ELSE

SET @Status = "F" 

ENDIF
]%%

%%[ IF @Status == "T" THEN ]%%

%%= v(@WhichNom1) =%%<br />
%%= v(@WhichNom2) =%%

%%[ ENDIF ]%%
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24821848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档