2

请在此处填写 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

4

3 回答 3

2

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

发生的事情是当促销代码不是时else,它之后的子句正在运行LEO,而不是当促销代码都不匹配时。

于 2015-04-17T21:35:24.167 回答
1

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

于 2015-04-17T21:43:46.160 回答
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(" ");}
于 2015-04-17T21:51:28.630 回答