Заполните здесь 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
код.
Ваш первый набор операторов 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(" ");}
Изменить все if($promocode == 'LEO')
линии, которые вы добавили в elseif($promocode == 'LEO')
,
Происходит то, что else
пункт после его запуска, когда промо-код не LEO
вместо того, чтобы ни один из промо-кодов не совпадал.
Второй оператор if будет выполнен, даже если первое условие выполнено успешно, и в этом случае условие второго оператора if повторяет значение в блоке else. Чтобы избежать этого, используйте вместо этого оператор elseif. Когда используется elseif, он будет оцениваться только в том случае, если исходное условие в первом операторе if ложно.