【问题标题】:Getting checkbox value in PHP Form在 PHP 表单中获取复选框值
【发布时间】:2014-01-03 12:56:56
【问题描述】:

我到处寻找,我知道我使用的方法应该有效,因为许多其他人都问过这个问题并且它有效。

但是,就我自己而言,它似乎不想工作。

问题:为什么我的数组只显示列表中的最后一项?

代码:

表格:

<form id="searchglue" method="post" action="<?=base_url();?>index.php/main/search">
    <input type="checkbox" name="colour[]"  id="Amber"                  value="Amber">
    <input type="checkbox" name="colour[]"  id="Beige"                  value="Beige">
    <input type="checkbox" name="colour[]"  id="Black"                  value="Black">
    <input type="checkbox" name="colour[]"  id="Brown"                  value="Brown">
    <input type="checkbox" name="colour[]"  id="Clear"                  value="Clear">
    <input type="checkbox" name="colour[]"  id="Cola"                   value="Cola">
    <input type="checkbox" name="colour[]"  id="Cream"                  value="Cream">
    <input type="checkbox" name="colour[]"  id="Dark Blue"              value="Dark Blue">
    <input type="checkbox" name="colour[]"  id="Dark Green"             value="Dark Green">
    <input type="checkbox" name="colour[]"  id="Glitter Gold"           value="Glitter Gold">
    <input type="checkbox" name="colour[]"  id="Glitter Green"          value="Glitter Green">
    <input type="checkbox" name="colour[]"  id="Glitter Multicoloured"  value="Glitter Multicoloured">
    <input type="checkbox" name="colour[]"  id="Glitter Red"            value="Glitter Red">
    <input type="checkbox" name="colour[]"  id="Glitter Silver"         value="Glitter Silver">
    <input type="checkbox" name="colour[]"  id="Gold"                   value="Gold">
    <input type="checkbox" name="colour[]"  id="Light Blue"             value="Light Blue">
    <input type="checkbox" name="colour[]"  id="Light Brown"            value="Light Brown">
    <input type="checkbox" name="colour[]"  id="Light Green"            value="Light Green">
    <input type="checkbox" name="colour[]"  id="Oak"                    value="Oak">
    <input type="checkbox" name="colour[]"  id="Orange"                 value="Orange">
    <input type="checkbox" name="colour[]"  id="Pale Amber"             value="Pale Amber">
    <input type="checkbox" name="colour[]"  id="Red"                    value="Red">
    <input type="checkbox" name="colour[]"  id="Silver"                 value="Silver">
    <input type="checkbox" name="colour[]"  id="White"                  value="White">
    <input type="checkbox" name="colour[]"  id="Yellow"                 value="Yellow">
</form>

结局:

foreach($_POST['colour'] as $r):
    echo $r;
endforeach;

我正在使用ajax 来获取我认为错误在于获取所有name 属性的结果,但我不知道如何处理它...

所以这里是ajax:

$('form#searchglue').on('change', function() {
    var obj = $(this),
    url = obj.attr('action'),
    method = obj.attr('method'),
    data = {};

    obj.find('[name]').each(function(index, value) {
        var obj = $(this),
        name = obj.attr('name'),
        value = obj.val();

        data[name] = value;
    });

    $.ajax({
        url: url,
        type: method,
        data: data,
        cache: false,
        success: function(response) {
            $("#load").html(response);
        }
    });
    return false;
});

无论我做什么,无论是勾选某项,还是完全取消勾选,结果总是黄色(输入列表中的最后一个)。

【问题讨论】:

    标签: php jquery ajax forms post


    【解决方案1】:

    使用serialize()方法获取表单值

    $('form#searchglue').on('change', function() {
        var obj = $(this);
        url = obj.attr('action');
        method = obj.attr('method');
    
        data =obj.serialize(); 
    
        $.ajax({
            url: url,
            type: method,
            data: data,
            cache: false,
            success: function(response) {
                $("#load").html(response);
            }
        });
        return false;
    });
    

    文档:.serialize()

    【讨论】:

    • 谢谢你这工作完美!我会尽快接受这个答案!
    猜你喜欢
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    • 2015-10-05
    • 1970-01-01
    相关资源
    最近更新 更多