我的脚本不适用于多个复选框,它只返回1个值,而不是根据选中的内容。哪里出错了?
JavaScript/jQuery:
<script type="text/javascript">
function getProsesAlo() {
var cblist = { 'period[]' : []};
$(":checked").each(function() {
cblist['period[]'].push($(this).val());
});
$.post("proses-alokasi.php", {
nama: frmProses.fnama.value,
prono: frmProses.fprono.value,
thn: frmProses.ftahun.value,
cblist
},
function(output) {
$("#statusmsg").html(output).fadeIn(1000);
});
}
</script>
HTML表单:
<input type="text" name="fprono">
<input type="text" name="fnama">
<select id="tahun" name="ftahun" class="form-control form-control-md">
<option value="">Tahun:</option>
<?php
for ($i=$tahun; $i >= $tahunmin; $i--){
?>
<option value="<?=$i;?>"><?=$i;?></option>
<?php
}
?>
</select>
<input type="checkbox" name="period[]" value="1">
<input type="checkbox" name="period[]" value="2">
..
<input type="checkbox" name="period[]" value="12">
<input type="button" value="Proses" id="proses" onClick="getProsesAlo<?=$no;?>()">
<!----- Result ----->
<div id="statusmsg">Unprocessed</div>
PHP代码proses-alokasi.php:
<?php
$prono = $_POST['prono'];
$namaang = $_POST["nama"];
$jiuran = $_POST["jiuran"];
$thn = $_POST["thn"];
$periode = $_POST['cblist'];
if(!empty($_POST['cblist'])) {
// Counting number of checked checkboxes.
$checked_count = count($_POST['cblist']);
// Loop to store and display values of individual checked checkbox.
foreach($_POST['cblist'] as $pilihperiod){
echo "<p>".$pilihperiod ."</p><br>";
echo "<p>".$pilihperiode."</p><br>";
}
} else {
echo "<b>Please Select At least One Option.</b>";
}
?>
请大家帮忙,你的回答会很有帮助,谢谢。
2条答案
按热度按时间wpcxdonn1#
用途:
以收集检查的值,否则PHP将以错误的格式(而不是数组)接收 cblist 的子项,因此将只接受最后一个值
也可以使用
$(":checkbox:checked")
作为复选框选择器,否则 select value也会包含在内kfgdxczn2#
解决了
我改变:
致: