当Iterator用于命名复选框时,标签不适用于复选框

时间:2017-03-23 18:30:40

标签: php css sql

以下是我正在使用的代码。有人可以告诉我为什么它不使用标签名称。

<div class="modal-body">

    <?php
        $batsmen=mysqli_query($con,$sql1);
            $i = 1;
            while ($row = mysqli_fetch_array($batsmen)) {       
            echo"<div class='checkbox checkbox-primary'  style='margin-left:20px;'>";
            echo "<input  type = 'checkbox' id='checkbox'".$i. " unchecked/>";
            echo "<label for='checkbox".$i."'>" . $row['p_name'] . "</label>";
            echo "</div>";
            $i++;
        }
    ?>
</div>

4 个答案:

答案 0 :(得分:0)

为ID而不是名称提供标签,请参阅以下代码:

&#13;
&#13;
<input  type = 'checkbox' id="x1" unchecked/>
<label for="x1">SAMPLE TEXT</label>
&#13;
&#13;
&#13;

将您的代码更改为:

echo "<input  type = 'checkbox' id='element-".$i."' name='checkbox'".$i." unchecked/>";
echo "<label for='element-".$i."'>" . $row['p_name'] . "</label>";

答案 1 :(得分:0)

您应该使用ID属性而不是名称:

<div class="modal-body">

<?php
    $batsmen=mysqli_query($con,$sql1);
        $i = 1;
        while ($row = mysqli_fetch_array($batsmen)) {       
        echo"<div class='checkbox checkbox-primary'  style='margin-left:20px;'>";
        echo "<input  type = 'checkbox' id='checkbox".$i. "' unchecked/>";
        echo "<label for='checkbox".$i."'>" . $row['p_name'] . "</label>";
        echo "</div>";
        $i++;
    }
?>

答案 2 :(得分:0)

在您的代码中,复选框ID属性在$ i变量之前被丢失:

  echo "<input  type = 'checkbox' id='checkbox'".$i. " unchecked/>";

这一行给出了:

 <input  type = 'checkbox' id='checkbox'1 unchecked/>

答案 3 :(得分:0)

我在问题的评论中询问,看起来它解决了这个问题。看起来输入HTML行中只有一个小错字。

<input type = 'checkbox' id='checkbox'".$i. " unchecked/>

应该是:

<input type='checkbox' id='checkbox".$i."' unchecked/>

这将匹配标签HTML:

<label for='checkbox".$i."'>" . $row['p_name'] . "</label>