多个促销代码

Multiple Promo Codes

请在此处完成 n00b,请见谅。我继承了一个网站,里面有代码可以将一年会员的价格降低 10 美元。我需要添加另一个折扣,"LEO",这将使价格降低 15 美元。我以为我可以模仿原始代码,一切都会好的,但是当我尝试它时,它不能正常工作。我希望这只是一个语法问题?

原代码如下:

  <tr>
    <td class='bottomborder'><div align='center'>
    <span id='bobcontent1-title'><input type='radio' name='MembershipTerm' class='join_form_bullet' value='";
      if($promocode == 'CIG9237'){echo("CigarFest Individual 1 Year");}
      else {echo("Individual 1 Year");}
      print"' checked='checked'></span>
    </div></td>
    <td class='bottomborder'>&nbsp;1 Year</td>
    <td class='bottomborder'>";
      if($promocode == 'CIG9237'){echo("");}
        else {echo("");}                                     
    print"</td>
    <td class='bottomborder'><span class='text_red'>";
    if($promocode == 'CIG9237'){echo(".00!");}
      else {echo(" ");}
    print"</span></td>
    <td class='bottomborder'>One Time Charge</td>
  </tr>

这是我试过的,但运气不好

  <tr>
    <td class='bottomborder'><div align='center'>
    <span id='bobcontent1-title'><input type='radio' name='MembershipTerm' class='join_form_bullet' value='";
      if($promocode == 'CIG9237'){echo("CigarFest Individual 1 Year");}
      if($promocode == 'LEO'){echo("Law Enforcement 1 Year");}
      else {echo("Individual 1 Year");}
      print"' checked='checked'></span>
    </div></td>
    <td class='bottomborder'>&nbsp;1 Year</td>
    <td class='bottomborder'>";
      if($promocode == 'CIG9237'){echo("");}
      if($promocode == 'LEO'){echo("");}
        else {echo("");}                                     
    print"</td>
    <td class='bottomborder'><span class='text_red'>";
    if($promocode == 'CIG9237'){echo(".00!");}
    if($promocode == 'LEO'){echo(".00!");}
      else {echo(" ");}
    print"</span></td>
    <td class='bottomborder'>One Time Charge</td>
  </tr>

当我添加 LEO 行时,CIG9237 的原始促销代码的定价显示 </code>,但 <code>LEO 代码的定价似乎是正确的。

更改您添加到 elseif($promocode == 'LEO') 的所有 if($promocode == 'LEO') 行。

发生的事情是,只要促销代码不是 LEOelse 子句就会变成 运行,而不是两个促销代码都不匹配时。

即使第一个条件成功,第二个 if 语句也会执行,在这种情况下,第二个 if 语句的条件与 else 块中的值相呼应。为避免这种情况,请改用 elseif 语句。当使用 elseif 时,只有当第一个 if 语句中的原始条件为 false 时才会对其进行评估。

您的第一组 if 语句未按预期执行。 else 条件与第二个 if 语句匹配,因此如果 $promocode'CIG9237' 则第一个 if 语句将执行并且 else 语句将也执行,因为 $promocode 不等于 'LEO'.

基本上,你有这个:

if($promocode == 'CIG9237'){echo("");}
if($promocode == 'LEO'){echo("");}
else {echo("");}

你应该有这个:

if($promocode == 'CIG9237'){echo("");}
elseif($promocode == 'LEO'){echo("");}
else {echo("");}

到link所有语句一起(现在只有一个语句会被执行)。

再往下也是一样,应该是这样:

if($promocode == 'CIG9237'){echo(".00!");}
elseif($promocode == 'LEO'){echo(".00!");}
else {echo(" ");}