Smarty массивы

Тема в разделе "Другие языки", создана пользователем rasandrey, 26 фев 2012.

Модераторы: Цукер
  1. rasandrey

    rasandrey

    Регистр.:
    2 апр 2009
    Сообщения:
    214
    Симпатии:
    6
    Приветствую!

    Такой вопрос по смарти: делаю условие с массивами, в таком виде
    HTML:
    {if $relate_session[$product_related[i].productID] == $product_info.productID}display:block;{else}display:none;{/if}
    но выводит ошибку именно в этом месте
    HTML:
    $relate_session[$product_related[i].productID]
    , что не правильно делаю?
     
  2. andrei_k

    andrei_k

    Регистр.:
    17 янв 2010
    Сообщения:
    251
    Симпатии:
    52

    А разве i не должна быть переменной?
     
  3. fpinger

    fpinger

    Регистр.:
    11 май 2007
    Сообщения:
    253
    Симпатии:
    58
    Ошибка не озвучена и очевидно не полный код для анализа причины.
     
  4. rasandrey

    rasandrey

    Регистр.:
    2 апр 2009
    Сообщения:
    214
    Симпатии:
    6
    Разобрался, сделал ассигн и переменную загнал в индекс массива. кому интересно:
    HTML:
    {assign var="data" value=$product_related[i][0]}
    {if $relate_session[$data] == $product_info.productID}display:block;{else}display:none;{/if}
     
  5. fpinger

    fpinger

    Регистр.:
    11 май 2007
    Сообщения:
    253
    Симпатии:
    58
    А чем это лучше
    HTML:
    {if $relate_session[$product_related[i][0]] == $product_info.productID}display:block;{else}display:none;{/if}
    ?
     
  6. rasandrey

    rasandrey

    Регистр.:
    2 апр 2009
    Сообщения:
    214
    Симпатии:
    6
    Ничем, таким образом $relate_session[$product_related[0]] отображает ошибку. Нельзя так обращаться к элементу массива
     
  7. fpinger

    fpinger

    Регистр.:
    11 май 2007
    Сообщения:
    253
    Симпатии:
    58
    А у вас тут: $relate_session[$product_related[0]] - чего-то не хватает?
     
  8. rasandrey

    rasandrey

    Регистр.:
    2 апр 2009
    Сообщения:
    214
    Симпатии:
    6
    сори, вот так не работает, пропустил,
    HTML:
    $relate_session[$product_related[i][0]]
     
  9. fpinger

    fpinger

    Регистр.:
    11 май 2007
    Сообщения:
    253
    Симпатии:
    58
    И я не услышал ошибки. Кроме того непонятно откуда берётся i А может там $i ?
    Здесь никто никого не обвиняет. Но доверие можно построить на достоверном коде. И тогда помогать легче. А ошибаемся мы в коде все. ;)
     
  10. rasandrey

    rasandrey

    Регистр.:
    2 апр 2009
    Сообщения:
    214
    Симпатии:
    6
    Я не стал приводить полный код, т.к. на 100% был уверен, что именно там ошибка, показываю как все сейчас работает
    HTML:
    {section name=i loop=$product_related}
        {assign var="data" value=$product_related[i][0]}
        {if $relate_session[$data] == $product_info.productID}display:block;{else}display:none;{/if}
    {/section}