【问题标题】:Store selected table row into simple array将选定的表格行存储到简单数组中
【发布时间】:2017-07-02 18:30:23
【问题描述】:

在我的源代码中,我创建了下表...

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']

【问题讨论】:

    标签: php html arrays forms submit


    【解决方案1】:

    您必须在包含播放器所有详细信息的每一行中包含一个隐藏的 input 字段(作为序列化字符串)。稍后,在处理表单时,只需反序列化字符串并将玩家的详细信息作为数组获取。所以你需要通过以下方式改变你的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
        ...
    }
    

    以下是相关参考资料:

    【讨论】:

    • 感谢您的精彩解释。但我有最后一个问题。目前我的按钮充满了 player_id。但我希望每个但都应该在编辑中命名。如何在不丢失功能的情况下实现这一点?
    • @HansMuff 很简单,不要改变submit输入元素的id属性,只需将value属性的值换成玩家的名字,像这样: &lt;input type="submit" id="&lt;?php echo $row['Player_ID']; ?&gt;" class="btn" name="Add" value="&lt;?php echo $row['SpielerName']; ?&gt;"&gt;
    猜你喜欢
    • 1970-01-01
    • 2014-01-11
    • 2018-04-17
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多