Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript函数不通过document.getElementById访问复选框选中值_Javascript_Php_Checkbox - Fatal编程技术网

Javascript函数不通过document.getElementById访问复选框选中值

Javascript函数不通过document.getElementById访问复选框选中值,javascript,php,checkbox,Javascript,Php,Checkbox,Javascript不是我的强项,我正在尝试编写一个简单的函数来计算用户选择了多少复选框。这些复选框是从数据库中存储的值生成的,表示可供订购比萨饼的客户选择的配料 Javascript: <script type="text/javascript"> function countBoxes() { var aCounter = 0; var count = 0; while (count < 10){ var aString = 'topping' + count;

Javascript不是我的强项,我正在尝试编写一个简单的函数来计算用户选择了多少复选框。这些复选框是从数据库中存储的值生成的,表示可供订购比萨饼的客户选择的配料

Javascript:

<script type="text/javascript">
function countBoxes()
{
var aCounter = 0;
var count = 0;
while (count < 10){
    var aString = 'topping' + count;
    var aCheckbox = document.getElementById(aString);
        if (aCheckbox.checked)
        {
            aCounter++;
        }
    count++;
}
alert(aCounter + 'boxes have been ticked');
}
</script>

函数计数框()
{
var aCounter=0;
var计数=0;
同时(计数<10){
var aString=‘topping’+计数;
var aCheckbox=document.getElementById(aString);
如果(aCheckbox.checked)
{
aCounter++;
}
计数++;
}
警报(计数器+‘已勾选方框’);
}
PHP:

echo”“;
while($row=mysql\u fetch\u assoc($product))
{ 
回音“$row['topping_name']”。价格($row[$aString])。香肠0.00

更换

onclick="countBoxes();"

并通过

function countBoxes()
{
  var aCounter = 0;
  var count = 0;
  var element = null;
while (element = document.getElementById('topping' + count)){
    if (element.checked)
      aCounter++;
    count++;
}
alert(aCounter + 'boxes have been ticked');
}

小提琴:问题在于你写字的时候

if (aCheckbox.checked)
因为如果您的aCheckbox=null,那么您在aCheckbox.checked上有一个错误

if ( aCheckbox && aCheckbox.checked)
JSFIDLE可以帮助您


我是否误解了您的问题,或者您的php代码没有生成复选框?php生成的复选框具有唯一的ID topping0、topping1等,我应该提到这些复选框使用onClick调用函数event@user2802882你能显示生成的HTML吗?对不起,我有点困惑。你为什么给e每个人都有一个唯一的
名称
?拥有一个
name=“toppings”
,不是更容易吗?然后可以使用
document.getElementsByName('toppings'))
并对其进行迭代。感谢您的帮助,我在php中发现了另一个错误,我未能初始化$counter并将其设置为increment by$counter=$counter+1@user2802882你为什么选择了一个与你无关的答案?
function countBoxes()
{
  var aCounter = 0;
  var count = 0;
  var element = null;
while (element = document.getElementById('topping' + count)){
    if (element.checked)
      aCounter++;
    count++;
}
alert(aCounter + 'boxes have been ticked');
}
if (aCheckbox.checked)
if ( aCheckbox && aCheckbox.checked)