在这里完成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'> 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'> 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
代码看起来正确。
答案 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(" ");}