【问题标题】:Create an array with on click events创建一个带有点击事件的数组
【发布时间】:2014-01-19 01:25:28
【问题描述】:

所以我有一组使用以下代码动态创建的复选框:

<?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,当点击上面的&lt;a&gt; 时,正确的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 中创建一个数组,我的理解是:&lt;?php $candies = array(); ?&gt;,这将创建一个空白数组。现在检查复选框时,我想将复选框的名称添加到数组。或者当复选框未选中时,它会从阵列中删除。我希望在提交表单之前发生这种情况。我怎样才能做到这一点?

【问题讨论】:

  • 对每个复选框的名称属性使用相同的名称。 .然后你可以访问这个复选框值作为 $candy=$_POST['candy']。此变量是一个数组,将仅包含已选中的复选框值

标签: javascript php jquery arrays


【解决方案1】:

这可以在没有链接的情况下完成,而 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);

【讨论】:

  • 它没有成为首选的外观,也不是问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多