首页 文章

从复选框中获取数组,然后在PHP中创建一个字符串

提问于
浏览
4

我的网站上有一个表单,它使用数组来提交复选框数据 . 然后,我尝试使用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;
}

echo $ plugins1只回显最后一个带有“:”的复选框数据 .

我怎样才能这样做,以便我可以立即将所有复选框数据插入数据库?

3 回答

  • 3

    你可以 serialize 的数据,我觉得更方便!

    或者你可以试试

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

    连接值 . 否则,您将在每次迭代时为 $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'])
    
  • 1

    这是你想要做的吗?我可能没有理解你的问题 . 等于之前的点将会连续,但您可能只是想要内爆 .

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

相关问题