如何在php中复选来自复选框的值

时间:2015-12-04 19:01:45

标签: php forms checkbox

出于培训目的,我已经制作了一个输出复选框值的小代码。这很好,但因为我能够检查多个复选框,我希望他们加起来。这是我的代码;

<table border=0 cellpadding=0 cellspacing=0 width=100%>
<form name="orderform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">


<input type="checkbox" name="korting" value=15 /> Student 15% <br>
<input type="checkbox" name="korting" value=10 /> Senior 10% <br>
<input type="checkbox" name="korting" value=5 /> Klant 5% <br>

输出写入的值;

<?php
if(isset($_POST["korting"]))
{
if($_POST["korting"]==15)
{
    echo ("15 procent korting");
}
else if ($_POST["korting"]==10)
{
    echo ("10 procent korting");
}
else if($_POST["korting"]==5)
{
    echo ("5 procent korting");
}
else if(isset($_POST["korting"]) && (isset($_POST["korting"])))
{
    if($_POST["korting"]==25)
{
    echo ("25 procent korting");
}
}
}


?>

只要选中一个复选框,一切正常。一旦检查多个,它只使用最后一个。我尝试过多种方式:

else if(isset($_POST["korting"]) && (isset($_POST["korting"]))
{
    echo ("25 procent korting");
}

else if($_POST["korting"=15] && $_POST["korting"]=10)
{
    echo ("25 procent korting");
}

两者都不会在页面上出错,但也不起作用。我知道使用完全不同的方法可能更好,但现在这就是本书教我的方式

问候,

伦纳特

1 个答案:

答案 0 :(得分:1)

你需要的是一个阵列。复选框如下所示:

<input type="checkbox" name="korting[]" value="15" />
<input type="checkbox" name="korting[]" value="10" />

$_POST['korting']将是一个值数组,如下所示:

array(
  0 => 15,
  1 => 10
)

您可以遍历它们以打印出值:

foreach ($_POST['korting'] as $korting_value) {
  echo $korting_value . "<BR>";
}

如果要添加值,可以使用array_sum:

echo array_sum($_POST['korting']);