选中(多个)复选框时如何显示文本?

时间:2018-03-18 06:29:48

标签: php checkbox

这是我索引中的代码段:

username

这是我的js:

                    <p id="text" style="display:none">hello</p>

 echo '<tr>';
                       echo '<td>'.$s['school_name'].'</td>'; 
                       echo '<td>'.$s['location'].'</td>';
                       echo '<td>'.$s['population'].'</td>';
                       echo '<td>'.$s['cost'].'</td>';
                       echo '<td>'.$s['topnotchers'].'</td>';
                       echo '<td>'.$s['rating'].'</td>';
                       echo '<td><input type="checkbox" name="userSelection" name="userSelection" onclick="userSelection()" value="'.$s['school_id'].'"</td>';

                   echo '</tr>';
                   }

}

由于我将行设置为行[0],因此仅在检查行[0]时显示该文本。但是,如果我在检查时需要函数对所有行都是真的,应该怎么做? 以上代码仅在第一个循环中显示文本。 “*”会起作用吗? 我是初学者,我将不胜感激。

2 个答案:

答案 0 :(得分:0)

您已对索引0进行了硬编码。因此,js函数仅对具有零索引的复选框运行。 首先将复选框的名称更改为checkbox1,checkbox2,...这将简化案例。 然后,您需要为每个复选框运行for循环。使用  `

for(i=0; i < 6; i++){
   currentCheckBox = document.getElementById("checkbox"+i)
   var text = document.getElementById("text");
   if (currentCheckBox.checked == true){
       text.style.display = "block";
   } else {
       text.style.display = "none";
   }   
}

`

答案 1 :(得分:0)

您必须将名称指定为数组,如下所示

<input type="checkbox" id="userSelection1" name="userSelection[]" onclick="userSelection()" value="">

然后只有你能够循环使用javascript来检查状态

var checkBoxArr = document.getElementsByName("userSelection[]");