Пользователь имеет возможность выбора из флажков. Я хочу установить флажок как массив через jquery, а затем перейти к php через ajax. Кажется, я не могу получить массив и процесс. Я видел другие ответы на SO, но никто, похоже, не работает.Передача нескольких флажков на PHP через Ajax
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";
}
проверил js, чтобы узнать, заполнено ли 'buckets'? проверил php, чтобы узнать, заполняется ли «POST» - небольшая отладка проходит долгий путь –