多个促销代码

时间:2015-04-17 21:28:51

标签: php if-statement promotion-code

在这里完成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("$25");}
        else {echo("$35");}                                     
    print"</td>
    <td class='bottomborder'><span class='text_red'>";
    if($promocode == 'CIG9237'){echo("$10.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("$25");}
      if($promocode == 'LEO'){echo("$20");}
        else {echo("$35");}                                     
    print"</td>
    <td class='bottomborder'><span class='text_red'>";
    if($promocode == 'CIG9237'){echo("$10.00!");}
    if($promocode == 'LEO'){echo("$15.00!");}
      else {echo(" ");}
    print"</span></td>
    <td class='bottomborder'>One Time Charge</td>
  </tr>

当我添加LEO行时,定价会显示$25$35原始促销代码CIG9237但似乎对LEO代码看起来正确。

3 个答案:

答案 0 :(得分:2)

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

当促销代码不是else时,正在运行LEO子句,而不是当两个促销代码都不匹配时,会发生什么。

答案 1 :(得分:1)

即使第一个条件成功,第二个if语句也会被执行,在这种情况下,第二个if语句的条件会回显else块中的值。要避免这种情况,请改用elseif语句。当使用elseif时,只会在第一个if语句中的原始条件为false时进行评估。

答案 2 :(得分:1)

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

基本上,你有这个:

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

你应该有这个:

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

将所有语句链接在一起(现在只执行其中一个语句)。

同样适用于下游,它应该是这样的:

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