Как вывести автоматом в атрибутах li

Тема в разделе "PHP", создана пользователем zaffasoft, 11 июн 2011.

Модераторы: latteo
  1. zaffasoft

    zaffasoft Создатель

    Регистр.:
    2 янв 2007
    Сообщения:
    42
    Симпатии:
    7
    Точнее как вывести уникальные номера для атрибута li по средствам php? Пытался вывести таким образом (внутри шаблона smarty). Не проканало :(

    PHP:
    <?php 
    $i 
    0;
    echo .
    "<ul><li id='style.$i'></li>\n
             <li id='style.
    $i'></li>\n";
    $i++ ?>  
     
  2. Conwell

    Conwell

    Регистр.:
    23 мар 2009
    Сообщения:
    337
    Симпатии:
    177
    Что такое цикл и как с ним обращаться знаете? Если нет, имеет смысл почитать например тут: http://webeith.ru/php/cikly-v-php-2.html
    куске кода, который был преведен оба "li" будут с одинаковым значением "0" и только после этого "i" будет увеличена на 1-цу. для того, чтобы это выводилось как хочется первый ли с "0", второй с "1" надо все это завести в цикл.
    для примера так:
    PHP:
    <?php
    $i 
    0;
    echo 
    "<ul>";
    while (
    $i<=10){
     echo 
    "<li id='style.$i'></li>\n";
    $i++; }
    echo 
    "</ul>"?>
     
  3. zaffasoft

    zaffasoft Создатель

    Регистр.:
    2 янв 2007
    Сообщения:
    42
    Симпатии:
    7
    @Conwell ты знаешь, что такое цикл и как с ним обращаться внутри шаблонизации SMARTY?? Дело в том, что твой кусок кода не будет работать в SMARTY! Тебе имеет смысл прочитать например тут http://www.smarty.net/docs/en/what.is.smarty.tpl
     
  4. Conwell

    Conwell

    Регистр.:
    23 мар 2009
    Сообщения:
    337
    Симпатии:
    177
    Фишка в том, что я знаю как вывести цикл в SMARTY :) и документацию на английском для смарти я тоже читал и не один раз.
    вот кусок кода для смарти по аналогии:
    Код:
    <ul>
    {assign var="counter" value="0"}
    {while $counter <= 10}
    <li class="style{$counter}"></br>
    { math equation="x + 1" x=$counter assign="counter" }
    {/while} 
    </ul>
    
     
    zaffasoft и PunKeel нравится это.
  5. zaffasoft

    zaffasoft Создатель

    Регистр.:
    2 янв 2007
    Сообщения:
    42
    Симпатии:
    7
    Спасибо, что направил на правильное русло куда копать, скинь линк на конкретный пункт Smarty. У меня почему то ругается, что
    PHP:
    unrecognized tag '/while' 
    . Походу не знаком ему тэг while.

     
  6. Conwell

    Conwell

    Регистр.:
    23 мар 2009
    Сообщения:
    337
    Симпатии:
    177
    Читайте документацию, где ее найти Вы знаете. это уже большой плюс.
    while был добавлен еще 04.28.2009 в смарти. http://smarty-php.googlecode.com/svn/trunk/distribution/change_log.txt
     
  7. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.035
    Симпатии:
    703
    можешь и так вставить
    PHP:
    {php}
    $i 0
    echo 
    "<ul>"
    while (
    $i<=10){ 
     echo 
    "<li id='style.$i'></li>\n"
    $i++; } 
    echo 
    "</ul>"{/php}
     
  8. zaffasoft

    zaffasoft Создатель

    Регистр.:
    2 янв 2007
    Сообщения:
    42
    Симпатии:
    7
    Не сработало :(

    @Conwell: Может подскажешь, как еще по другому сделать?

     
  9. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.035
    Симпатии:
    703
    вообще там было ; пропущено
    PHP:
    {php}$i 0
    echo 
    "<ul>"
    while (
    $i<=10){ 
     echo 
    "<li id='style.$i'></li>\n"
    $i++; } 
    echo 
    "</ul>";{/php}
    или так можешь сделать
    PHP:
    {php
    echo 
    "<ul>"
    for(
    $i=0;$i<=10;$i++){echo "<li id='style.".$i."'></li>\n"; } 
    echo 
    "</ul>";
    {/
    php}