从复选框中获取数组,然后在PHP中生成字符串


Get array from checkbox and then make a string in PHP

我有一个表单在我的网站上,使用数组提交复选框数据。然后,我尝试使用foreach循环来操作该数据,为每个复选框数据添加一个":",然后我想将其变成一个可以插入数据库的字符串。

这是我的HTML代码:
while($row = $result->fetch_assoc())
{
echo '<tr><td><input type="checkbox" name="pluginlist[]" value="'.$row['plugin'].'" /></td><td> '.$row['plugin'].'</td></tr>';
}

$row['plugin']是数据库中另一个表的数据

这是我的PHP代码$_POST数据,然后运行foreach循环:

if(!empty($_POST['pluginlist'])) {
        foreach($_POST['pluginlist'] as $plugins) {
            $plugins1 = $plugins.":";
            }
            echo $plugins1;
}

回显$plugins1只回显最后一个复选框数据,最后一个":"。

我怎样才能使它,所以我可以插入所有的复选框数据到数据库一次?

可以把数据serialize,我觉得方便多了!

或者你可以试试

$plugins1 = implode(":" , $_POST['pluginlist']);

将值连接起来。否则,您将在每次迭代中为$plugins1分配一个新值。

$plugins1 .= $plugins.':'; // Correct - note the extra dot before the equal sign

:

$plugins1 = $plugins.':'; // Incorrect - would "reset" the value each time

或者,您也可以使用implode将所有数组值连接到单个字符串:

$plugins1 = implode(':', $_POST['pluginlist'])

这就是你想要做的吗?我可能不明白你的问题。等号前的点会连接,但你可能只是想内爆。

$plugins1 = '';
if(!empty($_POST['pluginlist'])) {
        foreach($_POST['pluginlist'] as $plugins) {
            $plugins1 .= $plugins.":";
            }
echo $plugins1;
echo "<br />or<br/ >";
$plugins2 = implode ($_POST['pluginlist'], ':');
echo $plugins2;