我正在制作一个简单的提交表单,它将数据发送到另一个PHP文件并显示数据。我几乎刚开始学习PHP,所以请耐心等待。
表单有几种类型的输入,但我遇到的问题是复选框:
<td><strong>Fyll</strong><br>
<input type="checkbox" name="fyll[]" value="Bacon">
Bacon<br>
<input type="checkbox" name="fyll[]" value="Ananas">
Ananas<br>
<input type="checkbox" name="fyll[]" value="Ekstra ost">
Ekstra ost<br>
<input type="checkbox" name="fyll[]" value="Skinke">
Skinke<br>
<input type="checkbox" name="fyll[]" value="Sopp">
Sopp<br>
</td>
将数据发送到此文件:
$fyllPriser = array("Bacon" => 25,
"Ananas" => 5,
"Ekstra ost" => 10,
"Skinke" => 10,
"Sopp" => 15
);
$fyll = $_POST['fyll'];
$fyllLenght = count($fyll);
for ($i = 0; $i < $fyllLenght; $i++){
echo "<span>";
echo $fyll[$i], ", </span>"; //<----- Displays all checked checkboxes
$fyllPris = $fyllPriser[$fyll[$i]]; //< Prices for each checked checkbox
echo $fyllPris;
}
数组$ fyllPriser包含每个项目的价格,其中键与输入的值名称相同。 显示所有内容,但我想为每个选中的复选框汇总所有价格。
现在它显示如下:Bacon, Ananas,
我想删除最后一项后面的逗号,我该怎么做?
如果我也回应价格,我会得到这个:Bacon, 25Ananas, 5
在这种情况下,我想添加25 + 5 = 30并将总和放入变量中,以便稍后可以使用它来创建“总和”或其他东西。我该怎么做?
答案 0 :(得分:3)
要删除字符串的最后一个字符,只需调用:
substr(0, strlen($string) - 1);
为了获得总数,您需要有一个变量来保持总数。然后你可以使用:
添加它 $total += $price;
$price
对应映射中的价格。
答案 1 :(得分:2)
以下是解决方案:
$fyll = $_POST['fyll'];
$fylls = [];
$totalPrice = 0;
foreach ($fyll as $v){
$fylls[] = "<span>". $v . "</span>";
$totalPrice += $fyllPriser[$v];
}
echo implode(',', $fylls);
echo "<span> total price: $totalPrice</span>";