0

我有一系列复选框。

<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);

但这仅适用于存储选定的选项,而不适用于生成的表行和列。请任何人都可以帮助解决这个问题。提前致谢

4

1 回答 1

1

好的,所以我想我理解得更好一些,但也许你应该用其他方式传达你的问题。

基本上我的理解是,您接受不确定的(在您拥有的复选框数量的范围内)数量的复选框,这些复选框又会为每个选定的复选框生成一行。

如果要将这些生成的行存储在 mySQL 中,则需要将数据发布回数据库

$result = mysqli_query($query, $conn);
$row = mysqli_fetch_array($result);

您需要设置与此类似的 $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 选择的结果保存到变量中,然后通过循环选择在 mySQL 中为它们分配行

更新:

好的,所以你把它们放在一个数组中,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>";
 }
于 2013-02-12T14:13:56.763 回答