首页 > 解决方案 > 如何在 html 列表中生成动态文本

问题描述

我需要根据来自数据库的数据数量生成动态文本。

在 html List中,我需要显示以下文本作为示例:

如果来自 DB 的记录数量只有 1000 条,则只显示一个项目列表。1000 条记录等于 1 个项目列表。

必须如上所述动态更改文本。列表中的每个文本显示 1000 条记录。

下面的代码静态显示11项

我对下面的代码进行了几次尝试,但仍然无济于事。

此代码有效,但仅显示静态文本。

$return .= "<div id='test_id'><ul>";    
    // $qty = 10424 / $limit = 1000 
    // $tabs = $qty / $limit = 10,424
    $tabs = $qty/$limit; 

    for ($i=0; $i < $tabs ; $i++) 
        { 
            $start = $i * $limit + 1;
            $end = ($i + 1) * $limit;            
                $color = 'classpA';
                $message = '<small>GROUP A</small>';
                if ($i < $tab_selected) {
                    $color = 'classB';
                    $message = 'RESERVED';
                }
                $active = $i == $tab_selected ? "active" : "";

                $return .= "<li class='tab {$color} {$active}' tab-id='#tab-".$i."'>

                <span class='available {$color}_text'><small>{$message}</small></span>

                <a href='#' class='{$color}_text'>".$start." - ".min($end,$qty)."</a></li>";
             
        }    
    $return .= "</ul></div>";

这就是我试图应用的逻辑

$qty = 18424;
$limit = 1000;
$tabs = ($qty / $limit);

$group = $tabs / $limit;

$alphabet = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');

for($i = 0; $i < $group; $i++) {
    echo "Group {$alphabet[$i]}".'<br>';
}

echo 'Qtd Group= '.$group.' Value Var Tabs= '.$tabs;

https://www.tehplayground.com/zyVzmaeYnTyyA4S9

我怎样才能让魔法发生?

标签: phphtml

解决方案


您的逻辑很好,只是 for 循环的限制似乎计算错误。

现在,对于变量group = (qty/limit)/limit,您在此处有一个额外的除法限制。

无论您对该部门的需求是什么,您都可以简单地使用tabsfor 循环条件中的值,或将其分配给另一个临时变量,由您决定。

for($i = 0; $i < $tabs; $i++) {
    echo "Group {$alphabet[$i]}".'<br>';
}

干杯!


推荐阅读