【问题标题】:loop to reduce writing many form containers循环以减少编写许多表单容器
【发布时间】:2016-08-18 13:29:30
【问题描述】:

我的页面中有 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 forms loops input label


【解决方案1】:

你可以这样做:

<?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 } ?>

【讨论】:

    【解决方案2】:

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

    $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++;
    }
    

    【讨论】:

    • 你的引号和连接符号是错误的。
    【解决方案3】:

    你也可以试试这个:

    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
        }
    

    【讨论】:

    • PHP 开始和结束标记前后有一些额外的.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    • 2021-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多