PHP中的foreach-如何在变量中传递值?
所以问题是,我有一个带有复选框的HTML表单作为输入选项。 我想将所有选定选项保存为一个变量中的字符串(!) 我很确定解决方案是foreach循环,但我的不起作用。它只返回最后选择的值 我怎样才能解决这个问题 HTMLPHP中的foreach-如何在变量中传递值?,php,html,arrays,checkbox,foreach,Php,Html,Arrays,Checkbox,Foreach,所以问题是,我有一个带有复选框的HTML表单作为输入选项。 我想将所有选定选项保存为一个变量中的字符串(!) 我很确定解决方案是foreach循环,但我的不起作用。它只返回最后选择的值 我怎样才能解决这个问题 HTML <form action="" method="post"> <label>category:<br/> one <input type="checkbox" name ="ber[]" value="one"><b
<form action="" method="post">
<label>category:<br/>
one <input type="checkbox" name ="ber[]" value="one"><br/>
two <input type="checkbox" name ="ber[]" value="two"><br/>
thr <input type="checkbox" name ="ber[]" value="three"><br/>
fou <input type="checkbox" name ="ber[]" value="four"><br/>
</form>
这称为“阵列内爆”:
您需要连接
$ber = ''
foreach ($_POST['ber'] as $value) {
$ber .= "$value. ', '"
}
使用当前方法,$ber=
覆盖上一个值
一个更好的解决方案是
内爆
您将在POST数组中获得选中的复选框值
<?php $_POST['ber']; ?>
现在,如果要将此数组分配给以逗号分隔的变量
<?php $beer_value = implode(",", $_POST['ber']); ?>
只要用下面的foreach循环更改foreach循环即可。您将在POST
中获得ber
,而不是类别
。因此,您需要将$\u POST['ber']
从$\u POST['category']
更改为$\u POST['ber']
$ber = '';
foreach ($_POST['ber'] as $value) {
$ber .= "$value. ', '"
}
$\u POST['category']
应该是$\u POST['ber']
否?名称将是$\u POST['ber']
而不是$\u POST['category']
,并且根据此$ber=“$value.”,“
。。。它看起来将被塞进mysql查询中:(@Nat_uuCsvs不应存储在一列中。每列1个值。您也不应将用户输入传递给SQL查询。查询应参数化。请看一看,不,htmlspecialchars
用于输出到浏览器,而不是SQL。(默认情况下,它对单引号也不做任何处理)注入也可以通过多种方式完成。最好是参数化,让驱动程序逃避一切,而不是猜测注入的外观。并且您需要更改$\u POST['category']
,它不存在于$\u POST['ber']
我的是一品脱,但是OP是$\u POST['ber']
<?php $beer_value = implode(",", $_POST['ber']); ?>
$ber = '';
foreach ($_POST['ber'] as $value) {
$ber .= "$value. ', '"
}