如何检查双重条件smarty

How to check double condition smarty

我想检查变量 $nvTb 是 1 还是 2。

我正在做这个但没有工作

{if (($nvTb eq 1) or ($nvTb eq 2)) }

实现这样的目标

<a role="tab" {if (($nvTb eq 1) or ($nvTb eq 2)) } id="fichaScroll" {else} data-toggle="tab" {/if}> 

当我 运行 代码只有一个 if check like

{if $nvTb eq 1} 

然后工作

在 php 你可以做这样的事情

<?php if(($nvTb == 1) ||  if($nvTb == 2)) {


}?>

php 中没有 "eq" 只需使用 == ->

if ($nvTb == 1 || $nvTb == 2)

注意:php中也有一个类型安全的比较=== 有关更多信息,请查看此处 http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison

看起来很聪明。像这样尝试:

{if $nvTb == 1 || $nvTb == 2}

干杯。

你可以试试这个:

<?php 
switch($nvTb) {
    case 1:
        //your code here
    case 2:
        //your code here
}

如果你正在使用 smarty,试试这个

{if ($nvTb eq 1) || ($nvTb eq 2)}
    do something
{/if}

你的情况

<a role="tab" {if ($nvTb eq 1) || ($nvTb eq 2)} id="fichaScroll" {else} data-toggle="tab" {/if}> 

我猜 TPL 是针对 smarty 模板的,从语法上看,您可以从这里获得完整的文档:http://www.smarty.net/docs/en/

eq== 的别名,您可以在此处查看:http://www.smarty.net/docs/en/language.function.if.tpl

针对您的问题,尝试以下方法:

<a role="tab" {if $nvTb === 1 || $nvTb === 2} id="fichaScroll" {else} data-toggle="tab" {/if}>

eq== 的别名,这意味着它会将 1 视为 true,这意味着任何 truth-ee 值也将通过检查。我猜这可能是你的问题。

如果这不是问题,请尝试以下操作:

{php}
echo '<a role="tab" ((if $nvTb === 1 || $nvTb === 2) ? id="fichaScroll" 
                                                     : data-toggle="tab")>';
{/php}

无论如何都不是最漂亮的解决方案,但我相信它应该可行。

最后,错误位于id部分。当有多个部分并使用相同的 id 时,可能会导致错误。为了解决这个问题,我使用 类 代替:

<a role="tab" {if ($nvTb eq 1) || ($nvTb eq 2)} class="fichaScroll" {else} data-toggle="tab" {/if}>

并将 javascript 从 # 更改为 .

一旦完成,double if 语句就可以正常工作了。