当迭代器用于命名复选框时,复选框的标签不起作用



下面是我正在使用的代码。有人可以让我知道为什么它不适用于标签名称。

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

id 而不是名称提供标签,请参见以下代码:

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

将代码更改为:

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

你应该使用 ID 属性而不是 name :

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

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

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

这一行给出:

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

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

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

应该是:

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

这将匹配标签 HTML:

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

最新更新