具有多个主体和多个具有相同名称的隐藏字段的表单只发送表单中最后一个隐藏字段


Form that has multiple tbody and multiple hidden fields with same name sends only the last hidden field in the form

这个表单在一个表单中有多个body。每个主体包含"隐藏"字段,具有"唯一"值。然而,当这个表单被发送时,它只发送最后一个"pouzivatel_id"值。

我想执行"pouzivatel_id"=4,但表单发送"pouzivatel_id"="1"

如果不使用多个表单,我该如何解决这个问题?

<form method="post" action="lib/action/admin.post.php">
<table>
    <thead>
        <tr>
            <th>Osobné číslo</th>
            <th>Prezývka</th>
            <th>Meno</th>
            <th>Priezvisko</th>
            <th>Operácie</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>00000000004</td>
            <td>user4</td>
            <td>user</td>
            <td>user</td>
            <td>
                <input type="hidden" name="pouzivatel_id" value="4"/>
                <button type="submit" name="ziadatel-schvalit" class="tlacidlo zelena">Schváliť</button>
                <button type="submit" name="ziadatel-zmazat" class="tlacidlo cervena">Zamietnuť</button>
            </td>
        </tr>
    </tbody>
    <tbody>
        <tr>
            <td>00000000003</td>
            <td>user3</td>
            <td>user</td>
            <td>user</td>
            <td>
                <input type="hidden" name="pouzivatel_id" value="3"/>
                <button type="submit" name="ziadatel-schvalit" class="tlacidlo zelena">Schváliť</button>
                <button type="submit" name="ziadatel-zmazat" class="tlacidlo cervena">Zamietnuť</button>
            </td>
        </tr>
    </tbody>
    <tbody>
        <tr>
            <td>00000000002</td>
            <td>user2</td>
            <td>user</td>
            <td>user</td>
            <td>
                <input type="hidden" name="pouzivatel_id" value="2"/>
                <button type="submit" name="ziadatel-schvalit" class="tlacidlo zelena">Schváliť</button>
                <button type="submit" name="ziadatel-zmazat" class="tlacidlo cervena">Zamietnuť</button>
            </td>
        </tr>
    </tbody>
    <tbody>
        <tr>
            <td>00000000001</td>
            <td>user1</td>
            <td>user</td>
            <td>user</td>
            <td>
                <input type="hidden" name="pouzivatel_id" value="1"/>
                <button type="submit" name="ziadatel-schvalit" class="tlacidlo zelena">Schváliť</button>
                <button type="submit" name="ziadatel-zmazat" class="tlacidlo cervena">Zamietnuť</button>
            </td>
        </tr>
    </tbody>
</table>

您可以为每个提交按钮使用不同的名称。如果一个提交按钮被按下,只有这个提交按钮被发送到PHP脚本。在PHP脚本中,检查按下了哪个按钮。

示例HTML代码:

<input type="hidden" name="pouzivatel_id[]" value="2"/>
<button type="submit" name="ziadatel-schvalit_2" class="tlacidlo zelena">Schváliť</button>
<button type="submit" name="ziadatel-zmazat_2" class="tlacidlo cervena">Zamietnuť</button>
<input type="hidden" name="pouzivatel_id[]" value="1"/>
<button type="submit" name="ziadatel-schvalit_1" class="tlacidlo zelena">Schváliť</button>
<button type="submit" name="ziadatel-zmazat_1" class="tlacidlo cervena">Zamietnuť</button>

示例PHP代码:

<?PHP
foreach($_POST['pouzivatel_id'] as $id)
{
    if(isset($_POST['ziadatel-schvalit_' . $id]))
    {
        //Schváliť
    }
    elseif(isset($_POST['ziadatel-zmazat_' . $id]))
    {
        //Zamietnuť
    }
}
?>