在我的源代码中,我创建了下表...
echo "<form id=\"center\" Name=\"Form2\" Method=\"Post\" Action=\"\">";
echo "<table border=\"1\">";
foreach($pdo -> query($sqlSpielerNamen) as $row){
echo "<tr>";
echo "<td style=\"font-size: 10;\">".$row['SpielerName']."</td>";
echo "<td style=\"font-size: 10;\">".$row['Note']."</td>";
echo "<td style=\"font-size: 10;\">".$row['Tore']."</td>";
echo "<td><input type=\"submit\" id=".$row['Player_ID']." class=\"btn\" name=\"Add\" value=".$row['Player_ID']."></td><tr>";
echo "</tr>";
}
echo "</table>";
echo "</form>";
现在,我想通过提交按钮选择一行。目前我得到Player_ID
这样......
if(isset($_POST["Add"])){
$P = $_POST["Add"];
}
但我需要整行 - Player_ID
,Note
和Tore
。
我认为一个很好的解决方案是将行写入一个简单的数组。类似于array = ['Note', 'Tore', 'Player_ID']
。
答案 0 :(得分:0)
您必须在每行中包含一个隐藏的输入字段,其中包含播放器的所有详细信息(作为序列化字符串)。稍后,在处理表单时,只需将字符串反序列化并将播放器的详细信息作为数组。因此,您需要按以下方式更改foreach
循环,
// your code
foreach($pdo->query($sqlSpielerNamen) as $row){
?>
<tr>
<td style="font-size: 10;"><?php echo $row['SpielerName']; ?></td>
<td style="font-size: 10;"><?php echo $row['Note']; ?></td>
<td style="font-size: 10;"><?php echo $row['Tore']; ?></td>
<td>
<input type="hidden" name="player_details[<?php echo $row['Player_ID']; ?>]" value="<?php echo htmlspecialchars(serialize(array($row['SpielerName'],$row['Note'], $row['Tore']))); ?>">
<input type="submit" id="<?php echo $row['Player_ID']; ?>" class="btn" name="Add" value="<?php echo $row['Player_ID']; ?>">
</td>
</tr>
<?php
}
// your code
随后,按照以下方式提交表格后,
if(isset($_POST["Add"])){
$P = $_POST["Add"];
list($SpielerName, $Note, $Tore) = unserialize($_POST['player_details'][$P]);
// Now access $SpielerName, $Note and $Tore variables in your subsequent code
...
}
以下是相关参考资料: