PHP - 发送一个包含一个复选框和POST的完整行

时间:2017-11-02 13:41:36

标签: php mysql post checkbox

我有一个包含以下形式的行的表: ID,名称,名字,IntA,IntB,IntC,...... 最后一列是文本字段。

我想用复选框选择多行,并将带有POST的ID和记录的整数发送到另一个PHP文件。

这是我的代码示例(里面有一点德语):

echo "<td><input type='checkbox' name='auswahl[]' value='$daten[0]'></td>";
echo "<td>" . $daten['ID'] . "</td>";
echo "<td><input type='number' name='Schr' value='".$punkte['PktSchr']."'></td>";
echo "<td><input type='number' name='Mdl' value='".$punkte['PktMdl']."'></td>";

所以在另一个PHP文件中我想对所有已检查的行进行SQL(在循环中):

$Eintraege  = $_POST['auswahl'];
$Schr       = $_POST['Schr'];
$Mdl        = $_POST['Mdl'];
foreach ($Eintraege as $i){
    $sql = "INSERT INTO aufnahme (IDSchueler, PktSchr, PktMdl) Values ('$i', '$Schr', '$Mdl')";
}

我的问题是:$Eintraege仅包含所选行的ID(因为value='$daten[0]')。 $Schr$Mdl包含最后一行的文本字段的值(不重要,选择了哪些行)。

所以我尝试设置value='$daten'并使用lika数组,但后来我得到了一个例外。

我想我必须改变value='$daten[0]',但不知道如何。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

另外两个名称 更改为 数组类型 ,您将获得所有值。

如下所示: -

echo "<td><input type='number' name='Schr[]' value='".$punkte['PktSchr']."'></td>";
echo "<td><input type='number' name='Mdl[]' value='".$punkte['PktMdl']."'></td>";

然后你可以这样做: -

foreach ($Eintraege as $k=> $i){
  $sql = "INSERT INTO aufnahme (IDSchueler, PktSchr, PktMdl) Values ('$i', '$Schr[$k]', '$Mdl[$k]')";
}

答案 1 :(得分:1)

正如@ Alive-to-Die所提到的,将名称转换为数组。

array([['type1', 0.75, 1.25, 2.0],
       ['type2', 2.0, 2.5, 0.75]], dtype=object)

这本身并不好看。考虑制作它

<input type='checkbox' name='auswahl[]' value='$daten[0]'>

<input type='checkbox' name='auswahl[]' value='{$daten[0]}'>

这是在字符串中使用变量的两种正确方法。