使用JS复选框发送一或零

时间:2019-01-25 20:45:12

标签: javascript php

我目前有一个带有循环的表单,该表单构建了多个复选框,可以在其中成功触发事件。

我已设置好代码,以便如果数据库中该行的值是1,请预先选中该复选框,该复选框将起作用。

我正在尝试创建它,以便在选中该框时,Javascript发送一个“ 1”,但是如果未选中,则发送一个“ 0”。

如果该页面加载的数据库值为1,并且选中了该框,那么当用户取消选中该页面时,我希望它向控制台日志发送“ 0”,反之亦然

<form id="saveLineup">
@foreach($list as $lists)
    <tr style="text-align:center;">
      <td><input class="addToLineup" type="checkbox" <?php if ($lists['LINE_UP'] == 1) echo "checked='checked'"; ?></td>
    </tr>        
@endforeach
</form>

当前,无论如何,无论我选中还是取消选中,复选框都会触发值“ on”显示在console.log上。

我在做什么错了?

$(".addToLineup").click(function (e) {

  updatedata.lineup = $(".addToLineup").val();

  console.log(updatedata);
});

2 个答案:

答案 0 :(得分:1)

<form id="saveLineup">
@foreach($list as $lists)
  <tr style="text-align:center;">
    <td>
      <input class="addToLineup" type="checkbox"/>
    </td>
  </tr>        
@endforeach
</form>

编辑:澄清之后,您只需要单击复选框即可检查其状态,然后根据该状态发送1或0:

$(".addToLineup").click(function(e) {
  if ($(this).is(":checked")) {
    updatedata.lineup = 1;
  } else {
    updatedata.lineup = 0;
  }
  console.log(updatedata);
});

JSFiddle供参考:https://jsfiddle.net/1agLdu5e/1

答案 1 :(得分:1)

您应该将复选框的值设置为标识特定阵容的内容。然后,使用数组样式的名称作为输入。结果将是$_POST['addToLineup']将是所有标识符的数组。

<form id="saveLineup">
@foreach($list as $lists)
    <tr style="text-align:center;">
      <td><input class="addToLineup" name="addToLineup[]" type="checkbox" value="<?php echo $lists['ID']; ?>" <?php if ($lists['LINE_UP'] == 1) echo "checked='checked'"; ?></td>
    </tr>        
@endforeach
</form>

用包含阵容ID的表列的实际名称替换'ID'