2017-07-02 27 views
0

在我的源代码创建如下表...商店选择表行成简单阵列

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_IDNoteTore为好。 我认为一个很好的解决方案是将行写入一个简单的数组。有点像array = ['Note', 'Tore', 'Player_ID']

回答

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 
    ... 
} 

下面是相关参考文献:

+0

谢谢你这真棒解释。但我有最后一个问题。此刻我的按钮充满了player_id。但我希望每一个都应该在编辑中命名。我怎样才能做到这一点,而不会失去功能? – HansMuff

+0

@HansMuff这很简单,不要改变* submit * input元素的'id'属性,只需要改变'value'属性的值与玩家的名字,就像这样:'“class =”btn“name =”Add“value =”<?php echo $ row ['SpielerName'];?>“> –