Написать if на смарти

Тема в разделе "Как сделать...", создана пользователем repacksman, 14 апр 2015.

Статус темы:
Закрыта.
  1. repacksman

    repacksman

    Регистр.:
    12 июн 2012
    Сообщения:
    154
    Симпатии:
    2
    Помогите написать if для текущего кода чтоб когда количество option равно один чтоб к form добавить {if}style="display: none;" {/if}
    Код:
    <form method="GET">
      <select name="selected_user">
      {foreach item=cur_user_login from=$user_logins}
      <option {if $selected_user==$cur_user_login} selected="selected" {/if}>{$cur_user_login}</option>
      {/foreach}
      </select>
    <input type="submit" value="ОК">
    </form>
    
    
     
  2. Jarhead

    Jarhead

    Регистр.:
    17 июн 2011
    Сообщения:
    342
    Симпатии:
    107
    Можно через javascript:

    Код:
    <script>
      if($('select').size() == 1){
          $('select').hide();
      }
    </script>
     
  3. kir9-molodoi

    kir9-molodoi

    Регистр.:
    31 май 2014
    Сообщения:
    250
    Симпатии:
    79
    не понятно что вы хотите, но тут нужен счетчик

    PHP:
    $count 0;
    <
    form method="GET" class="myForm">
      <
    select name="selected_user">
      {foreach 
    item=cur_user_login from=$user_logins}
      <
    option {if $selected_user==$cur_user_loginselected="selected" {/if}>{$cur_user_login}</option>
    $count++;
      {/foreach}
      </
    select>
    {if 
    $count == 1}
    echo 
    '<style>.myForm { display: none; }</style>';
    {/if}
    <
    input type="submit" value="ОК">
    </
    form>

    как то так, надо присвоить форме класс, в котором дисплей прописывать в зависимости от условия
     
    Последнее редактирование: 14 апр 2015
  4. Jarhead

    Jarhead

    Регистр.:
    17 июн 2011
    Сообщения:
    342
    Симпатии:
    107
    Проверить не могу, не факт что будет работать, нужно смотреть что за массив, но можно еще попробовать так:


    Код:
    {if $user_logins|@count == 1}<form method="GET" style="display:none">{else}<form method="GET">{/if}
      <select name="selected_user">
      {foreach item=cur_user_login from=$user_logins}
      <option {if $selected_user==$cur_user_login} selected="selected" {/if}>{$cur_user_login}</option>
      {/foreach}
      </select>
    <input type="submit" value="ОК">
    </form>
     
  5. repacksman

    repacksman

    Регистр.:
    12 июн 2012
    Сообщения:
    154
    Симпатии:
    2
    Ни один из вариантов не работает
     
  6. cruide

    cruide Писатель

    Регистр.:
    25 июл 2012
    Сообщения:
    8
    Симпатии:
    22
    а можно вопрос? Зачем скрывать форму?
    Не проще ли сделать так:

    Код:
    {if is_array($user_logins) && count($user_logins) > 1}
    <form method="GET">
        <select name="selected_user">
        {foreach item=cur_user_login from=$user_logins}
        <option {if $selected_user==$cur_user_login} selected="selected" {/if}>{$cur_user_login}</option>
        {/foreach}
        </select>
    <input type="submit" value="ОК">
    </form>
    {else}
    Тут альтернативный код
    {/if}
    
     
  7. repacksman

    repacksman

    Регистр.:
    12 июн 2012
    Сообщения:
    154
    Симпатии:
    2
    Код работает! Спасибо
     
Статус темы:
Закрыта.