Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在JS中单击复选框发送一个或零个_Javascript_Php - Fatal编程技术网

Javascript 在JS中单击复选框发送一个或零个

Javascript 在JS中单击复选框发送一个或零个,javascript,php,Javascript,Php,我目前有一个带有循环的表单,该表单构建了多个复选框,我可以在其中成功触发事件 我设置了我的代码,因此如果该行的数据库值为1,那么请预先选中该框,这样可以工作 我试图使它在选中该框时,Javascript发送一个“1”,但如果未选中,则发送一个“0” 如果页面加载时数据库值为1,并且选中了该框,则当用户取消选中该框时,我希望它将“0”发送到控制台日志,反之亦然 <form id="saveLineup"> @foreach($list as $lists) <tr sty

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

我设置了我的代码,因此如果该行的数据库值为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>

jsIDLE供参考:

您应该将复选框的值设置为标识特定列表的值。然后为输入使用数组样式名称。结果将是
$\u 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>

@foreach($lists作为$lists列出)

您需要
updatedata.lineup=$(this.val()所以您只检查单击的一个,而不是所有单击的第一个。这会记录“1”,但当我取消选中它时,它仍会记录“1”。所以它永远都不对。您可以在
if
语句中添加一个复选框,其中如果
选中,则为1,否则为0。但是,我不确定你想用这段代码做什么。。。您正在根据一系列复选框更新似乎是全局变量(或超出该范围)的内容。见巴尔马的回答;也许他对你要做的事情有正确的想法。好吧,我只是想确保选中/不选中的复选框将向ajax调用发送1或0,嗯。。。问题是,在AJAX或
POST
调用中,未选中的复选框不会发送到服务器,因此,如果您将所有这些值设置为
1
,则只会发送大量的1,但不会发送0。哦,我没有意识到这一点。即使我有检查/取消检查触发调用本身的动作?是否应该是
class=“addToLineup[]”
<form id="saveLineup">
@foreach($list as $lists)
  <tr style="text-align:center;">
    <td>
      <input class="addToLineup" type="checkbox"/>
    </td>
  </tr>        
@endforeach
</form>
$(".addToLineup").click(function(e) {
  if ($(this).is(":checked")) {
    updatedata.lineup = 1;
  } else {
    updatedata.lineup = 0;
  }
  console.log(updatedata);
});
<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>