循环以减少编写许多表单容器

loop to reduce writing many form containers

我有 12 个表单需要出现在我的页面中,但是它们并没有太大区别,例如:

<label>Player 1*</label>
<div class="form-group">
    <input class="form-control" name="h-p1-fn" placeholder="First name" type="text"/> 
</div>
<div class="form-group">
    <input class="form-control" name="h-p1-ln" placeholder="Last name" type="text" />
</div>
<div class="form-group">
    <input class="form-control" name="h-p1-nr" placeholder="Number" type="number" min="0" max="99" step="1" />
</div>

<label>Player 2*</label>
<div class="form-group">
    <input class="form-control" name="h-p2-fn" placeholder="First name" type="text" />
</div>
<div class="form-group">
    <input class="form-control" name="h-p2-ln" placeholder="Last name" type="text" />
</div>
<div class="form-group">
    <input class="form-control" name="h-p2-nr" placeholder="Number" type="number" min="0" max="99" step="1" />
</div>

如您所见,表格差别不大。唯一的区别: 标签增量(玩家 1*、玩家 2*、玩家 3* 等。星号用于标签 1 到 5),输入名称增量(h-p1-fn、h-p2-fn 等)。

我怎样才能减少这段代码,也许使用循环?所有这些都在一个.php文件中,所以如果它是一个循环会更好。

你可以这样做:

<?php
for($i=1; $i<=12; $i++) {
?>
<label>Player <?php echo $i; ?>*</label>
<div class="form-group">
    <input class="form-control" name="h-p<?php echo $i; ?>-fn" placeholder="First name" type="text"/> 
</div>
<div class="form-group">
    <input class="form-control" name="h-p<?php echo $i; ?>-ln" placeholder="Last name" type="text" />
</div>
<div class="form-group">
    <input class="form-control" name="h-p<?php echo $i; ?>-nr" placeholder="Number" type="number" min="0" max="99" step="1" />
</div>
<?php } ?>

你想要的都可以用这个代码实现

$cnt=1;

for($i=0;$i<5;$i++){
echo '
<label>Player .'$cnt'.*</label>
<div class="form-group">
    <input class="form-control" name="h-p.'$cnt'.-fn" placeholder="First name" type="text" />
</div>
<div class="form-group">
    <input class="form-control" name="h-p.'$cnt'.-ln" placeholder="Last name" type="text" />
</div>
<div class="form-group">
    <input class="form-control" name="h-p.'$cnt'.-nr" placeholder="Number" type="number" min="0" max="99" step="1" />
</div>';
$cnt++;
}

你也可以试试这个:

for($i=0;$i<=12;$i++){
    ?>
    <label>Player<?php echo $i ?>*</label>
    <div class="form-group">
        <input class="form-control" name="h-p<?php echo $i; ?>-fn" placeholder="First name" type="text" />
    </div>
    <div class="form-group">
        <input class="form-control" name="h-p<?php echo $i; ?>-ln" placeholder="Last name" type="text" />
    </div>
    <div class="form-group">
        <input class="form-control" name="h-p<?php echo $i; ?>-nr" placeholder="Number" type="number" min="0" max="99" step="1" />
    </div>
    <?php
    }