我有3个复选框,我将这些复选框的值存储到数据库中。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><input type="checkbox" value="1" name="estate-checkbox[]"></li>
<li><input type="checkbox" value="2" name="estate-checkbox[]"></li>
<li><input type="checkbox" value="3" name="estate-checkbox[]"></li>
</ul>
服务器端:
if(isset($_POST['estate-checkbox'])){
$safeestatecheckbox = implode(",",$_POST["estate-checkbox"]);
} else {
$safeestatecheckbox = '';
}
如果用户选中所有复选框,它将存储在db中,如下所示:
1, 2, 3
如果选择一个,或只选择两个,它会像这样存储:
1, 3
我想如果用户没有选中复选框,它会将数据库存储为零,就像这样
1, 0, 3
所以问题是,如果在$_POST['estate-checkbox']
中没有选中复选框值,我如何才能将复选框值设为0?
答案 0 :(得分:1)
只有选中的复选框才会发送到服务器,无法让它为未选中的复选框发送另一个值。
您可以在PHP中填写缺少的值:
$estates = [];
$estate_checkboxes = array_flip($_POST['estate-checkbox']);
for ($i = 1; $i <= $max_estates; $i++) {
if (isset($estate_checkboxes[$i])) {
$estates[] = $i;
} else {
$estates[] = 0;
}
}
$safeestatecheckbox = implode(', ', $estates);
答案 1 :(得分:1)
一个选项是拥有一个hidden
字段,用于更新复选框的每次点击
$('[name="estate-checkbox[]"]').click(function() {
var arr = [];
$('[name="estate-checkbox[]"]').each(function() {
if ($(this).prop('checked')) arr.push($(this).val());
else arr.push(0);
})
$('[name="estate-checkbox-values"]').val(arr);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><input type="checkbox" value="1" name="estate-checkbox[]"></li>
<li><input type="checkbox" value="2" name="estate-checkbox[]"></li>
<li><input type="checkbox" value="3" name="estate-checkbox[]"></li>
</ul>
<!----- Change into type hidden ----->
<input type="text" name="estate-checkbox-values">
在你的PHP上:
if(isset($_POST['estate-checkbox-values'])){
$safeestatecheckbox = $_POST['estate-checkbox-values'];
} else {
$safeestatecheckbox = '';
}
答案 2 :(得分:0)
function printOut(){
var theText = document.getElementById("theText").innerHTML;
document.getElementById("theText").innerHTML=
document.getElementById("theChar").value;
var theNumber = document.getElementById("theNbr").innerHTML;
document.getElementById("theNumber").innerHTML=
document.getElementById("theNbr").value;
var newText= theText;
var outPut;
for(i = 0; i<theNumber; i++){
newText =newText + theText;
}
newText = newText + "<br>";
for( i = 0; i< theNumber; i++){
outPut = outPut + newText;
}
document.getElementById("theText").innerHTML= outPut;
}