使用php生成的复选框表单突出显示

时间:2018-05-21 05:26:31

标签: javascript jquery

我有这个页面设置,我可以用表格中的复选框突出显示所选值。这段代码运行正常。 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>

1 个答案:

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