我有这个页面设置,我可以用表格中的复选框突出显示所选值。这段代码运行正常。 https://jsfiddle.net/zt54jqtL/
当我尝试使用以下php生成的代码替换静态form1代码时,它不会突出显示所选单元格。我该如何解决这个问题?请。谢谢!
我实现的php代码是:
<?php
include 'etc/config.php';
mysqli_select_db($conn, $dbname);
$subjectName = 'SELECT * FROM tablea order by Week DESC';
$subject = mysqli_query($conn, $subjectName);
?>
<div>
<form method="post" action=" ">
<?php
while ($data = mysqli_fetch_array($subject)) {
echo "<div>";
echo "<input type='checkbox' class='selector' value='{$data['Value1']}'>" . $data['Value1'];
echo "<input type='checkbox' class='selector' value='{$data['Value2']}'>" . $data['Value2'];
echo "<input type='checkbox' class='selector' value='{$data['Value3']}'>" . $data['Value3'];
echo "<input type='checkbox' class='SelectAll'>All";
echo "</div>";
}
?>
</form>
<script>
$(".SelectAll").click(function () {
$(this).parent().find('input:checkbox').not(this).prop('checked', this.checked);
});
</script>
答案 0 :(得分:1)
在您的PHP中,您生成的复选框的值属性设置为您要查找的数字。
但是,如果你在小提琴中使用相同的JS,那么它正在寻找复选框的名称:
var checked = $(".selector:checked").map(function() {
return this.name
}).get()
您需要更改JS以获取值,而不是像这样:
var checked = $(".selector:checked").map(function() {
return this.value
}).get()
此外,PHP文件末尾的脚本即使在其他复选框上也不会触发单击,因此突出显示功能不会触发。试试这个:
<script>
$(".SelectAll").click(function () {
if (this.checked)
$(this).parent().find('.selector:not(:checked)').click();
else
$(this).parent().find('.selector:checked').click();
});
</script>