如何通过php控制html元素的数量?

时间:2019-03-25 21:23:33

标签: php html

我正在处理如下所示的 HTML代码,其中我想通过 php代码控制li标签。

HTML代码:

<li class="vidlist-main__item cf">
</li>

<li class="vidlist-main__item cf">
</li>

<li class="vidlist-main__item cf">
</li>

<li class="vidlist-main__item cf">
</li>

php代码:

<input type="text" name="no_articles_EN" style="width: 77.69px;height: 22px;" value="<?php if($data->{"no_articles_EN"}<>''){echo $data->{"no_articles_EN"};} ?>">   // Line#A

<input type="text" name="no_articles_FR" style="width: 77.69px;height: 22px;" value="<?php if($data->{"no_articles_FR"}<>''){echo $data->{"no_articles_FR"};} ?>">   // Line#B

在上述php代码的 Line#A 中,假设输入的值是 3(no_articles_EN),则li标记应为3,如下所示:

HTML代码:

<li class="vidlist-main__item cf">
</li>

<li class="vidlist-main__item cf">
</li>

<li class="vidlist-main__item cf">
</li>

如果输入的值是 2(no_articles_EN),则li标签应为2,如下所示:

HTML代码:

<li class="vidlist-main__item cf">
</li>

<li class="vidlist-main__item cf">
</li>

问题陈述:

我想知道应该在上面的HTML代码中进行哪些更改,因此,如果 no_articles_EN 为3/4/5,那么li标签应该反之亦然。我提出了以下逻辑,但我认为我需要更多。

<?php
if($data->{"no_articles_EN"})   // Let say when no_articles_EN is 3 then li tags should be 3.  
{
?>
<li class="vidlist-main__item cf">
</li>
<li class="vidlist-main__item cf">
</li>
<li class="vidlist-main__item cf">
</li>
<?php
}
?>

1 个答案:

答案 0 :(得分:0)

如果$data->no_articles_EN是等于所需项目数的整数。您似乎可以使用简单的for循环。

  

如果输入的值为3(no_articles_EN),则li标签应为3

     

如果输入的值是2(no_articles_EN),则li标签应为2,如下所示:

在使用混合内容(PHP / HTML)时,我更喜欢ALT PHP语法,这更干净。但是,如果您更喜欢{...},请使用它。 alt语法使用:end{command};代替{}。这样移动代码变得更容易,更容易找到结束标签等。

<?php if($data->no_articles_EN): ?>  // Let say when no_articles_EN is 3 then li 
    <?php for($i=0; $i<$data->no_articles_EN; ++$i): ?>
        <li class="vidlist-main__item cf"></li>
    <?php endFor; ?> 
<?php endif; ?> 

除非真正需要,否则不应使用变量属性语法$data->{"no_articles_EN"},因为它会降低可读性并在不需要时增加复杂性。这主要是针对诸如$data->{"no_articles_".$language}这样的事情的,您可以在其中将部分属性名称作为变量。

干杯!