2014-10-16 77 views
0

我正在处理一些将通过精确目标部署的电子邮件。我们有许多AMPScript指定电子邮件中正在发生的事情。电子邮件的内容块被动态填充,当一个字段留空时,仍然会对该表部分进行调用,然后在该电子邮件中插入一个空白区域。因此抛出设计的重击。 我的问题是,无论如何,我可以有空的单元格完全从页面中删除时,不使用?AMPScript:试图插入隐藏字段

这里是代码示例...

Set @SendLog_blockC1 = lookup("RaceDataSendLog","BLK_C1","SubID",@SubLookup,"JobID",@JobLookup,"BatchID",@BatchLookup) 
... 
... 
... 
Set @blockC1 = Concat("My Contents\Newsletter\",@SendLog_blockC1) 
.... 
.... 
.... 
.... 
%%[IF empty(@blockC1) THEN]%% 

%%[ELSE]%% 
<tr> 
<td align="left" valign="top" > 

%%=ContentAreaByName(@blockC1,"",0)=%% 

</td> 
</tr> 
%%[ENDIF]%% 

预先感谢您。

回答

0

在你指的是你的ELSE上面空间的假设 - 这应该工作:

<!--%%[ 
IF empty(@blockC1) THEN 
ELSE]%%--> 
<tr> 
<td align="left" valign="top" > 
%%=ContentAreaByName(@blockC1,"",0)=%% 
</td> 
</tr> 
<!--%%[ENDIF]%%--> 

这将隐藏AMPscript在HTML中,除了 - 你并不真正需要的IF到产生空间,您可以在ELSE之后立即拥有这个空间。

+0

我建议不要使用HTML注释来隐藏AMPScript。它会抬起你的电子邮件的文本版本。我在我的博客上有一个替代方案:http://sprignaturemoves.com/prettying-up-ampscript-in-emails/ – 2014-10-17 01:18:33

+0

您也可以在empty()函数之前使用NOT运算符 - 例如:IF NOT EMPTY(expression1)然后。关于这方面的更多信息:http://help.exacttarget.com/en-US/documentation/exacttarget/content/ampscript/ampscript_syntax_guide/ – 2014-10-17 01:20:41

0

并感谢您的回复。我终于能够解决额外间距问题。

我所做的是从if/else语句周围删除<tr> and <td>标签。然后,我将这些<tr> and <td>标签放在由PM的内容块周围,当他们决定使用哪些块时。这解决了额外间距的问题。客户很高兴!

再次感谢你们!

+0

如果您可以将您的问题标记为已回答,那就太棒了。 – 2014-11-20 14:05:18