所以我有一组使用以下代码动态创建的复选框:
<?php foreach($candies as $candy): ?>
<a style="cursor:pointer;" class="candy list-group-item" data-id="<?php echo $candy['candy_id']; ?>" data-toggle="popover" data-placement="top" data-html="true" data-trigger="hover" data-content="<img src='<?php echo $candy['candy_img']; ?>'>"><?php echo $candy['candy_name']; ?></a>
<input type="checkbox" id="<?php echo $candy['candy_id']; ?>" name="<?php echo $candy['candy_name']; ?>" style="display:none;" />
<?php endforeach; ?>
这导致以下(缩短的)代码:
<ul class="list-group">
<a style="cursor:pointer;" class="candy list-group-item" data-id="1" data-toggle="popover" data-placement="top" data-html="true" data-trigger="hover" data-content="<img src='http://www.groovycandies.com/pc/catalog/8992_General.jpg'>" data-original-title="" title="">Raspberry Gummi Bears</a>
<input type="checkbox" id="1" name="Raspberry Gummi Bears" style="display:none;">
<a style="cursor:pointer;" class="candy list-group-item" data-id="2" data-toggle="popover" data-placement="top" data-html="true" data-trigger="hover" data-content="<img src='http://www.groovycandies.com/pc/catalog/candy-runts-5.jpg'>" data-original-title="" title="">Runts</a>
<input type="checkbox" id="2" name="Runts" style="display:none;">
...
</ul>
然后我有javascript,当点击上面的<a>
时,选中或取消选中正确的checkbox
。
<script type="text/javascript">
$(".candy").click(function(){
var id = $(this).data('id');
var checkbox = $("#"+id).prop("checked");
if ( checkbox != true) {
$("#"+id).prop("checked", true);
$(this).attr("class","candy list-group-item active");
}
else
{
$("#"+id).prop("checked", false);
$(this).attr("class","candy list-group-item");
}
});
</script>
现在我要提交表格...但在我这样做之前,我想再做一件事。我无法弄明白。
我想在php中创建一个我理解的数组:<?php $candies = array(); ?>
,这将创建一个空白数组。现在,当选中复选框时,我想将复选框的名称添加到数组中。或者,如果取消选中该复选框,则会从阵列中删除它。我希望在提交表单之前发生这种情况。我怎样才能做到这一点?
答案 0 :(得分:0)
这可以在没有链接的情况下完成,而javascript,你只需要这样的标签即可:
通过记录输入name
属性,使复选框成为一个数组。额外的[]
将数组发送到服务器。
<p><label><input type="checkbox" name="candies[]" value="Raspberry Gummi Bears" /> Raspberry Gummi Bears</label></p>
<p><label><input type="checkbox" name="candies[]" value="Runts" /> Runts</label></p>
然后在PHP端:
<?php
$candies = $_POST["candies"];
print_r($candies);