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