在php脚本中动态更新css值

时间:2015-03-30 11:37:42

标签: php css smarty

我正在使用php和smarty编写导航菜单。我需要动态修改样式表中的一些值。例如,对于每次迭代,id =" nav1"应更改为id =" nav1",id =" nav2",id =" nav3"等等。我可以使用$ caty @index(索引数组),但它从0开始。

此外,在子菜单中,第一个列表项应该只包含class =" topli"其余的不应该包括class =" topli"他们应该是这样的:

<li>
  <a href="categories.php?id={$inc.catid|stripslashes}">{$inc.name|stripslashes|replace:" ":"&nbsp;"}</a>
</li>

实际脚本:

<div id="topnav_container">
    <div id="topnav">
        <ul id="nav">
        {foreach from=$categori item=caty}
        {assign var="ifavaible" value=$caty@total}
        {if  $caty@index < {$toplinks}}
        {if $rewritemod == 2}

            <li class="nav-item" id="nav1">
                <a href="categories.php?id={$caty.catid|stripslashes}">{$caty.name|stripslashes}</a>
        {/if}

                <div>
                    <ul class="child">
                    {foreach from=$subcat item=inc}
                    {if $inc.cord neq 0 && $caty.catid eq $inc.parent}
                    {if $rewritemod == 2}

                        <li class="topli">
                            <a href="categories.php?id={$inc.catid|stripslashes}">{$inc.name|stripslashes|replace:" ":"&nbsp;"}</a>
                        </li>
                    {/if}
                    {/if}
                    {/foreach}

                    </ul>
                </div>
            </li>
        {/if}
        {/foreach}

        </ul>
    </div>
    <!-- end: #topnav -->
</div>

1 个答案:

答案 0 :(得分:0)

第一个问题,如何获得“nav1”,“nav2”,“nav3”等等。您可以使用从1开始的@ iteration,而不是从{0}开始的@index

<li class="nav-item" id="nav{$caty@iteration}">

第二个问题,如何仅将类应用于第一个元素。传统的方法是使用@first关键字,当你迭代数组的第一个元素时,true,但是你似乎有很多if语句在循环,所以我不会依赖它。相反,如果已设置类,则可以保存参数,如此

{foreach from=$subcat item=inc}

{$first = true}

{if $inc.cord neq 0 && $caty.catid eq $inc.parent}
{if $rewritemod == 2}

    <li {if $first}class="topli"{/if}>
        <a href="categories.php?id={$inc.catid|stripslashes}">{$inc.name|stripslashes|replace:" ":"&nbsp;"}</a>
    </li>
    {$first = false}
{/if}
{/if}
{/foreach}