我有一系列复选框。
<input type="checkbox" name="selection[]" value="move" />
<input type="checkbox" name="selection[]" value="move2" />
<input type="checkbox" name="selection[]" value="move3" />
<input type="checkbox" name="selection[]" value="move4" />
根据所选复选框的数量,将生成一个具有相应行数的表。
for($x=0; $x<$N; $x++)
{
echo nl2br("<td><textarea name=art[] rows=10 cols=30></textarea> </td><td><textarea name=science[] rows=10 cols=30></textarea></td></textarea></td><td><textarea name=method[] rows=10 cols=30></textarea></td><td><textarea name=criteria[] rows=10 cols=30></textarea></td></tr>");
}
我不知道每次会生成多少具有相应列的表行。那么如何编写插入每组行数组的代码是一个问题。我试过了
$optionsVal = implode(",", $data);
但这仅适用于存储所选选项,而不适用于生成的表行和列。请任何人都可以帮助解决此问题。提前致谢
答案 0 :(得分:1)
好吧所以我认为我理解得更好一些,但也许你应该用其他术语传达你的问题。
基本上我的理解是,您接受了一个不确定的(在您拥有的复选框数量的范围内)复选框的数量,这反过来会为每个选中的复选框生成一行。
如果要在mySQL中存储这些生成的行,则需要将数据发布回数据库
$result = mysqli_query($query, $conn);
$row = mysqli_fetch_array($result);
您需要设置与此类似的$结果,并将复选框值存储在其中 在此示例中,如果最终用户点击“保存”按钮,则会将复选框中的值插入变量
if(isset($_POST["savebtn"]))
{
//inserting the new information
$id = $_POST[""];
$name = $_POST[""];
//iterate through each checkbox selected
foreach($_POST["checkbox"] as $loc_id)
{
$query = "INSERT INTO table(ID, Loc_Code) VALUES('$id', '$loc_id')";
$result = mysqli_query($query, $conn);
}
?>
这只是从另一个例子中得到的结果,但是你已经离开了内爆,你需要首先将php选择的结果保存到变量中,然后通过循环选择
更新:
好的,所以你把它们放在一个数组中,seelction [] - 这很好,现在你想查看是否选择了某个值......
if (in_array("move2", $_POST['selection'])) { /* move2 was selected */}
然后你想把它放到一个单独的字符串中 - 你使用了implode方法
echo implode("\n", $_POST['selection']);
然后用foreach循环回显它
foreach ($_POST['selection'] as $selection) {
echo "You selected: $selection <br>";
}