我的网站上有一个表单,它使用数组来提交复选框数据。然后,我尝试使用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只回显最后一个带有“:”的复选框数据。
如何制作,以便我可以立即将所有复选框数据插入数据库?
答案 0 :(得分:3)
你可以serialize
数据,我觉得更方便!
或者你可以尝试
$plugins1 = implode(":" , $_POST['pluginlist']);
答案 1 :(得分: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'])
答案 2 :(得分:1)
这是你想要做的吗?我可能没有理解你的问题。等于之前的点将会连续,但你可能只想内爆。
$plugins1 = '';
if(!empty($_POST['pluginlist'])) {
foreach($_POST['pluginlist'] as $plugins) {
$plugins1 .= $plugins.":";
}
echo $plugins1;
echo "<br />or<br/ >";
$plugins2 = implode ($_POST['pluginlist'], ':');
echo $plugins2;