计算用户定义数字的百分比

时间:2019-06-20 07:32:58

标签: javascript php jquery

我正在使用this代码段来计算用户单击的复选框数量,然后在试图显示百分比的位置下面有一个提交按钮。例如,如果他们点击了10个复选框中的8个,则其下方应显示80%。

我尝试了以下PHP代码

$x = "<?php if(isset($_POST['count-checked-checkboxes']))?>";;
$total = 500;
$percentage = ($x*100)/$total;

其中x是已选中复选框的数量,但是当我尝试回显$ percentage时,出现了未定义的变量错误:注意:未定义变量:百分比“

也许我可以使用Javascript或Jquery做到这一点吗?

2 个答案:

答案 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/