我正在使用this代码段来计算用户单击的复选框数量,然后在试图显示百分比的位置下面有一个提交按钮。例如,如果他们点击了10个复选框中的8个,则其下方应显示80%。
我尝试了以下PHP代码
$x = "<?php if(isset($_POST['count-checked-checkboxes']))?>";;
$total = 500;
$percentage = ($x*100)/$total;
其中x是已选中复选框的数量,但是当我尝试回显$ percentage时,出现了未定义的变量错误:注意:未定义变量:百分比“
也许我可以使用Javascript或Jquery做到这一点吗?
答案 0 :(得分:1)
是的,您可以使用Javascript完成此操作
$checkboxes.change(function(){
var countCheckboxes = $checkboxes.length;
var countCheckedCheckboxes = $checkboxes.filter(':checked').length;
var percentage = Math.round(100 * countCheckedCheckboxes / countCheckboxes);
$('#percentage-checked-checkboxes').text(percentage);
});
请参阅:jsFiddle
但是,该百分比现在不会在服务器上显示。
答案 1 :(得分:0)
PHP不知道有多少个复选框。您可以改为在jQuery中进行此操作,如果需要在PHP中进行此操作,请设置一个隐藏元素以发送复选框总数。
<div class="count-checkboxes-wrapper">
<span id="count-checked-checkboxes">0</span> of
<span id="count-total-checkboxes">0</span>
(<span id="percentage-checked-checkboxes">0</span> %) checked
</div>
如果您需要将复选框总数发送到PHP,则可以在表单中添加隐藏的输入元素
<input type="hidden" id="checkedCheckboxesPercentageInput" name="checkedCheckboxesPercentage" value="0" />
$(document).ready(function(){
var $checkboxes = $('#devel-generate-content-form td input[type="checkbox"]')
$("#count-total-checkboxes").text($checkboxes.length);
$checkboxes.change(function(){
var countCheckedCheckboxes = $checkboxes.filter(':checked').length,
percentageCheckedCheckboxes = countCheckedCheckboxes / $checkboxes.length * 100;
$('#count-checked-checkboxes').text(countCheckedCheckboxes);
$("#percentage-checked-checkboxes").text(percentageCheckedCheckboxes);
// If you're sending it to PHP, add the hidden input and uncomment below
// $("#checkedCheckboxesPercentageInput").val($checkboxes.length);
});
});
如果添加了隐藏元素,则可以通过$_POST['checkedCheckboxesPercentage'];
获得PHP中的值。
请参阅您修改过的小提琴https://jsfiddle.net/4mrjyxod/