我对if语句有一点问题,因为它只填充了最后一个elseif if
%%[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,我需要做什么?
谢谢,丹
发布于 2014-07-21 14:47:22
我设法使用两个IF语句以略有不同的方式对其进行排序
%%[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!
发布于 2014-07-18 18:34:00
只有当最后一个elseif if为true时,才会打印变量。
像这样移动它们:
...
ELSEIF @Add3 == "N" AND @Add4 == "Y" AND @Add5 == "Y" THEN
SET @WhichNom1 = "1"
SET @WhichNom2 = "3"
]%%
%%[ENDIF]%%
@WhichNom1
@WhichNom2所以他们在IF/ELSEIF之外。这样,它们将始终被打印出来,但变量将根据子句进行不同的设置。
编辑:
如果您只想在其中一个语句为真时打印变量,那么您需要(如前所述)在If语句中打印它们,或者您也可以:
SET @WhichNom1 = ""
SET @WhichNom2 = ""在if语句之前,则在语句之后:
IF @WhichNom1 != "" THEN @WhichNom1
IF @WhichNom2 != "" THEN @WhichNom2因此,只有当它们被设置为"“以外的值时,才能打印它们。
发布于 2014-10-23 04:47:55
罗伯是对的。另外,如果您想在AMPscript块之外打印@WhichNom1和@WhichNom2,您可能需要编写如下代码:
%%[
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 ]%%https://stackoverflow.com/questions/24821848
复制相似问题