我有一个包含以下形式的行的表: 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]'
,但不知道如何。
感谢您的帮助!
答案 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]}'>
这是在字符串中使用变量的两种正确方法。