【问题标题】:Getting an array of checked checkboxes, generated via php [duplicate]获取通过 php 生成的选中复选框数组 [重复]
【发布时间】:2018-01-10 05:27:13
【问题描述】:

我正在通过 php 动态生成多个复选框的列表。

<input type=\"checkbox\" name=\"quetext[]\" value=".$row_all_que['id'].">

将数据发布到 php 的按钮在开始时被禁用。

<input type="button" value="Next" class="btn btn-primary btn-lg btn-block" id="send-que" disabled>

我希望在至少选中一个复选框时启用它。我该怎么做?

另外,一旦我选择了所需的复选框,我需要创建这些复选框的数组并将它们的值传递给 php。

编辑 1:

由于数据是通过 ajax 调用从我的服务器传来的,复选框元素是动态生成的,因为我在 document.ready() 中编写的代码没有被执行。 我将代码转换为 ajax 调用的“成功”功能,并且在选中复选框时启用/禁用按钮现在工作正常。

这是我进行的 ajax 调用的 jquery 代码 sn-p:

$.ajax({
        type: "POST",
        url: "ajaxData.php",
        data: data,

        success: function(data) {
            $('.quedata').html(data);
            var checkboxes = $('.quedata .ques-box');
            checkboxes.change(function(){
                $('#send-que').prop('disabled', !checkboxes.is(":checked"));
            });
        }
    });

这里的 'quedata' 类是我的 tbody 元素,其中生成了复选框。

这是 HTML 结构:

<table class="table table-striped" style="margin-top: 50px;">
                <thead>
                    <tr>
                        <th>ID</th>
                        <th>Question</th>
                        <th>Mark(s)</th>
                        <th><input type="checkbox" disabled></th>
                    </tr>
                </thead>
                <tbody class="quedata">
                </tbody>
            </table>

编辑 2:已解决

在我的 ajax 调用的成功部分中包含代码解决了它,我得到了我想要的输出。我已经发布了一个包含代码的答案。

【问题讨论】:

  • 你尝试过什么来达到你想要的结果?你对你的问题的研究表明了什么?你能提供你的尝试代码吗? How do I ask a good questionHow much research effort is expected 可能有助于改善您的问题。
  • 我让按钮启用/禁用工作。我将编辑我的问题并添加我为实现它所做的工作。 @Geshode
  • 解决了这个问题。 @Mr.x 我之前尝试过,但由于复选框的动态生成,它以前没有工作。现在它是。不过感谢您的帮助。
  • 请将解决方案作为答案发布,而不仅仅是对问题的编辑 - 48 小时后您可以接受它以表明问题已解决。谢谢。

标签: javascript php jquery html checkbox


【解决方案1】:

我稍微编辑了复选框元素并为其添加了一个类:

<input type=\"checkbox\" name=\"quetext[]\" class=\"ques-box\" value=".$row_que['id'].">

这是我进行的 ajax 调用的 jquery 代码 sn-p:

$.ajax({
    type: "POST",
    url: "ajaxData.php",
    data: data,

    success: function(data) {
        $('.quedata').html(data);
        var checkboxes = $('.quedata .ques-box');
        checkboxes.change(function(){
            $('#send-que').prop('disabled', !checkboxes.is(":checked"));
        });
    }
});

这是数组生成代码:

$(document).ready(function() {

    $('#send-que').click(function(){
        var checked = [];
        $('.ques-box:checked').each(function(){
            checked.push($(this).val());
        });
        for(var i=0; i<checked.length; i++) {
            alert(checked[i]); //Check if values are added
        }
    });
});

很抱歉在发布之前缺乏研究,这是我在 stackoverflow 上的第一个问题。

【讨论】:

    猜你喜欢
    • 2016-09-20
    • 2013-02-20
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多