HTML - 输入字段跳出 html table

HTML - input field jumps out of html table

我有一个 'dynamic' table 可以更改某人信息的网站。单击 'update' 时,单元格应更改为输入字段。这行得通,但不知何故输入字段跳出 table 并位于其上方。

这是显示 table:

的函数的一部分
 echo '<tr>';
        echo '<td><b>' . ucfirst(htmlspecialchars($data)) . '</b></td>'; 
        if($url_param_index[1] == $info) // Checks if second url-parameter is same as $info on row that is clicked on and changes cell to form input field
        {       
            echo '<form action="update.php method="POST"';                  
            echo '<td><input type="text" name="' . $data . '" value="' . $info . '"></td>';
            echo '<input type="hidden" name="lidnummer" value="' . $gegevens_lid['lidnummer'] . '">';
            echo '<td><button type="submit">Save</button></td>';
            echo '<td>----</td>';
            echo '</form>';
        }
        else
        {
            if($data == 'lidnummer' || $data == 'adres' || $data == 'woonplaats')
            {
                echo '<td>' . htmlspecialchars($info) . '</td>';
                echo '<td> ---- </td>';
                echo '<td> ---- </td>';
                
            } 
            else
            {
                echo '<td>' . htmlspecialchars($info) . '</td>';
                echo '<td><a href="lid.php?lidnummer=' . $gegevens_lid['lidnummer'] . '&' . $data . '=' . $info . '">Update</td>';
                echo '<td> ---- </td>';
            }            
        }
        echo '</tr>';
   

这是调用函数以显示 table:

的页面
<div>
    <h3>Lid:</h3>
    <table>
        <tbody>
            <tr>
                <th>#</th>
                <th>Info</th>
                <th>Pas aan</th>
                <th>Delete</th>
            </tr>
            <?php show_single_lid($conn, $lidnummer); ?>          
        </tbody>
    </table>
</div>

点击更新前

点击更新后

输入框本来应该留在table里面row/column,但是跳出来了,剩下的就滑过来了...

在 table 或 tr 标签中不允许使用

form。所以你的表格应该包含整个 table 或在一个单元格中。

例如(注意表格在单个单元格内):

echo '<td><form action="update.php" method="POST">';                  
echo '<input type="text" name="' . $data . '" value="' . $info . '">';
echo '<input type="hidden" name="lidnummer" value="' . $gegevens_lid['lidnummer'] . '"><button type="submit">Save</button></form></td>';
echo '<td></td>';
echo '<td>----</td>';

另见

尝试将您的 PHP 代码更改为此。

 echo '<tr>';
        echo '<td><b>' . ucfirst(htmlspecialchars($data)) . '</b></td>'; 
        if($url_param_index[1] == $info) // Checks if second url-parameter is same as $info on row that is clicked on and changes cell to form input field
        {       
            echo '<td><form action="update.php method="POST"';                  
            echo '<td><input type="text" name="' . $data . '" value="' . $info . '"></td>';
            echo '<input type="hidden" name="lidnummer" value="' . $gegevens_lid['lidnummer'] . '">';
            echo '<td><button type="submit">Save</button></td>';
            echo '<td>----</td>';
            echo '</form></td>';
        }
        else
        {
            if($data == 'lidnummer' || $data == 'adres' || $data == 'woonplaats')
            {
                echo '<td>' . htmlspecialchars($info) . '</td>';
                echo '<td> ---- </td>';
                echo '<td> ---- </td>';
                
            } 
            else
            {
                echo '<td>' . htmlspecialchars($info) . '</td>';
                echo '<td><a href="lid.php?lidnummer=' . $gegevens_lid['lidnummer'] . '&' . $data . '=' . $info . '">Update</td>';
                echo '<td> ---- </td>';
            }            
        }
        echo '</tr>';