@viktorross

Почему не работает подсчет в php и smarty?

Здравствуйте, у меня такая проблема возникла

есть один и тот же вывод в шаблон на 3 страницах

{if isset($credits_allowed) && $credits_allowed && !$nologin}

<div class="option clearfix" id="div_credits" {if !$total}style="display: none;"{/if}>

<input type="hidden" name="credit_value" id="credit_value" value="{$credits_settings.unit}"/>

<input type="hidden" name="current_credits" id="current_credits" value="{$current_credits}"/>

<div class="option_left">{$lng.credits.balance}</div>

<div class="option_right"><b>{if $current_credits>0}{$lng.credits.you_currently_have} <span class="price">

{$current_credits} 

{if $current_credits==1}{$lng.credits.scredit}{else}{$lng.credits.scredits}{/if}</span>{else}

{$lng.credits.you_currently_have_no_credits}{/if}</b><br/>

<br/>

<label style="line-height: 30px;" class="freeradiog">

<input type="radio" class="noborder" name="processor" value="credits"  

{if $current_credits>=$needed_credits}checked="checked"{else}disabled="disabled"{/if}/>

<div class="radio__textg"></div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

{$lng.credits.pay_using_credits}<span id="not_enough_credits" {if $current_credits==0 || 

$current_credits>=$needed_credits}style="display: none;"{/if}>

( {$lng.credits.not_enough_credits} )</span>

<!--<span id="no_credits" {if $current_credits==0 || $current_credits<$needed_credits}style="display: none;"

{/if}> ( <span id="needed_credits">{$needed_credits}</span> <span id="scredit"

{if $needed_credits>1}style="display: none;"{/if}>{$lng.credits.scredit}</span>

<span id="scredits" {if $needed_credits==1}style="display: none;"{/if}>{$lng.credits.scredits}</span> )--> 

</span>
	</label>
	</div>
	</div>
	{/if}


на 2х страница он работает, на 3 странице по какой-то причине не работает данная строка , пришлось скрыть, т.к причина почему не работает не понятна мне

<!--<span id="no_credits" {if $current_credits==0 || $current_credits<$needed_credits}style="display: none;"

{/if}> ( <span id="needed_credits">{$needed_credits}</span> <span id="scredit"

{if $needed_credits>1}style="display: none;"{/if}>{$lng.credits.scredit}</span>

<span id="scredits" {if $needed_credits==1}style="display: none;"{/if}>{$lng.credits.scredits}</span> )-->


суть такова что когда у пользователя достаточно очков появляется необходимое число в скобках и input разблокирован, если нажать на кнопку которая должна прибавить к необходимым очкам еще , то ничего не обновляется , а именно значение $needed_credits , если очков выбрано больше, чем у пользователя есть, то должна появиться вместо цифр надпись "недостаточно очков" вот эта {$lng.credits.pay_using_credits} и все это должно происходить без обновления страницы, но это не происходит. Текущее значение сколько у пользователя очков вот эта строка $current_credits именно с ней идет сравнение необходимых очков $needed_credits. Но приплюсовать выбранные значения к $needed_credits почему-то скрипт не может соответственно и сравнить с $current_credits тоже не может. Но php точно знает что очков все-таки не достаточно, поэтому дальнейшие действия невозможны.

Так в чем же проблема? ведь точно такой же шаблон работает на 2 страницах как надо..

Возможно виноват JS, возможно php на что смотреть?

Почему такое может происходить?

Кстати если значение needed_credits равно 0, то показывается полностью все вот это подряд, т.е все тексты которые скрыты и должны показываться при определенных условиях

<!--<span id="no_credits" {if $current_credits==0 || $current_credits<$needed_credits}style="display: none;"

{/if}> ( <span id="needed_credits">{$needed_credits}</span> <span id="scredit"

{if $needed_credits>1}style="display: none;"{/if}>{$lng.credits.scredit}</span>

<span id="scredits" {if $needed_credits==1}style="display: none;"{/if}>{$lng.credits.scredits}</span> )-->
  • Вопрос задан
  • 53 просмотра
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
в логах должны быть ошибки, скорее всего переданы не все переменные. Проще использовать "{if (!empty($needed_credits))}" вместо "{if $needed_credits==1}" и "{if $needed_credits>1}"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы