php - 通过 Ajax 将多个复选框传递给 PHP

标签 php jquery ajax checkbox

用户可以选择从复选框中进行选择。我想通过 jquery 将复选框作为数组获取,然后通过 ajax 传递给 php。看来我无法获取数组和进程。我在 SO 上看到了其他答案,但似乎都没有用。

HTML/PHP

<?php foreach ( $results['buckets'] as $bucket ) { ?>
    <div><?php echo $bucket->name ?></div>
    <input type="checkbox" name="buckets[]" id="<?php echo strtolower( $bucket->name ) ?>" class="buckets" value="<?php echo $bucket->id ?>" style="visibility: hidden" /><label for="<?php echo strtolower( $bucket->name ) ?>" class="<?php echo strtolower( $bucket->name ) ?>"><?php echo $bucket->name ?></label>
<?php } ?>

JS

$( function() {

    $( "#form" ).submit( function() {

        var buckets = new Array();
        $( "input[name='buckets[]']:checked" ).each( function() {
                buckets.push( $( this ).val() );
        } );
        var valid = false;

        $.ajax( {

            type: "POST",
            url: "/scripts/validateBucketSelect.php",
            data: buckets,
            cache: false,
            async: false,

            success: function( error ) {

                if ( error == "null" ){

                    valid = true;

                } else {

                    $( ".errorMessage" ).html( error );
                }
            }
        } );

        return valid;
    } );
} );

PHP

$postData = $_POST;

if ( count( $postData['buckets'] ) < 3 ) {
    echo "Oops! You have to select at least 3 buckets.";
} elseif ( count( $postData['buckets'] ) > 5 ) {
    echo "Oops! You cannot select more than 5 buckets.";
} else {
    echo "null";
}

最佳答案

buckets 是一个数组,但是你需要php脚本中的key

所以 data: buckets, 应该是 data: {buckets : buckets},然后你可以用 $_POST['buckets'].

如果你只是使用 data: buckets,,那么$_POST就已经是你要的数据了。

关于php - 通过 Ajax 将多个复选框传递给 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18582810/

相关文章:

javascript - 在 Woocommerce 的 Adword 转换代码中添加订单数据

javascript - 两个输入数字字段的组合最大值和最小值

javascript - 无法通过 JavaScript 转换在文本框中输入浮点值

javascript - 页面上的多个更新面板从文本框中删除 JavaScript Datepicker 日历

javascript - 如何通过单击按钮将现有模板呈现为单独页面上的弹出表单?

javascript - 如何使用 PHP 将信息从 Javascript 获取到 MySQL 数据库?

PHP 流写入缓冲区

java - WSDL + PHP + Java (SOAP)

php - Mysql,如何查询以基于字符串作为输入从数据库获取名称?

jquery - 如何使用 jQuery 将 HTML 包裹在文本节点周围?