2014-01-19 57 views
2

所以我有一组的复选框被用下面的代码动态创建的:创建上点击事件的数组

<?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="&lt;img src='http://www.groovycandies.com/pc/catalog/8992_General.jpg'&gt;" 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="&lt;img src='http://www.groovycandies.com/pc/catalog/candy-runts-5.jpg'&gt;" 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

使用相同的名称。 。那么你可以访问这个复选框的值为$ candy = $ _ POST ['candy']。这个变量是一个数组,并将只包含已被检查过的复选框值 – sonam

回答

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端:对于每一个复选框name属性

<?php 
$candies = $_POST["candies"]; 
print_r($candies); 
+0

它不会成为首选外观,也不是问题。 –

+0

您可以通过'CSS'设计外观。请参阅我的更新。 –

+0

精彩的这个成果很棒! –