Php “提交”按钮位于while循环之外,但在表单提交后,它始终会四处移动

Php “提交”按钮位于while循环之外,但在表单提交后,它始终会四处移动,php,html,css,Php,Html,Css,我正在尝试制作一个联系人表单,表单本身正在工作,但每次我提交回复消息时,提交按钮都会一直移动到不正确的位置。我已经将submit按钮放置在while循环之外,但它的行为仍然像是在while循环之内 我试着在这个地方移动支架,但似乎没有任何效果。我正在考虑使用位置固定,但我仍然认为我应该能够让它与绝对或相对。我将其更改为相对,但按钮没有显示相对位置 这是我的主要代码: <?php include_once 'navbar.php'; if(!isset($_SESSION['u_uid'])

我正在尝试制作一个联系人表单,表单本身正在工作,但每次我提交回复消息时,提交按钮都会一直移动到不正确的位置。我已经将submit按钮放置在while循环之外,但它的行为仍然像是在while循环之内

我试着在这个地方移动支架,但似乎没有任何效果。我正在考虑使用位置固定,但我仍然认为我应该能够让它与绝对或相对。我将其更改为相对,但按钮没有显示相对位置

这是我的主要代码:

<?php
include_once 'navbar.php';
if(!isset($_SESSION['u_uid'])) {
    header("Location: index.php?medical_premium_users=notlogin");
    exit();
} else {
    include_once 'includes/dbh.php';

    $sql = "SELECT * FROM contact_form;";

    $stmt = mysqli_stmt_init($conn);
                        if(!mysqli_stmt_prepare($stmt, $sql)) {
                           echo "SQL error";
                        } else {


                          mysqli_stmt_execute($stmt);
                          $result = mysqli_stmt_get_result($stmt);
                          $resultCheck = mysqli_num_rows($result);

                          if ($resultCheck < 1) {
                              echo '<div class="no_enquiries">There are no enquiries yet!</div>';
                          }
                          echo '<form action="medical_enquiries_reply_process.php" method="POST">
                          <table class="medical_enquiries_reply">
                      <tr>
                      <th colspan="3" class="update_title">Welcome to the Administrator\'s Enquiries Reply Section</th>
                      </tr>';

                      while ($row = mysqli_fetch_assoc($result)) {
                        echo '<tr><th>Ticket:</th><td>'.$row['ticket'].'<input type="hidden" name="ticket" value="',htmlspecialchars($row['ticket']),'"></td></tr>
                               <tr><th>Username:</th><td>'.$row['user_uid'].'</td></tr>
                               <tr><th>First Name:</th><td>'.$row['first_name'].'</td></tr>
                               <tr><th>Last Name:</th><td>'.$row['last_name'].'</td></tr>
                               <tr><th>E-Mail:</th><td>'.$row['email'].'</td></tr>
                               <tr><th>Subject:</th><td>'.$row['subject'].'<input type="hidden" name="subject" value="',htmlspecialchars($row['subject']),'"></td></tr>
                               <tr><th>Message:</th><td>'.$row['message'].'</td></tr>
                               <tr><th>Date of Message:</th><td>'.$row['date_sent'].'</td></tr>
                               <tr><th>Message Reply:</th><td>'.$row['message_reply'].'</td></tr>
                               <tr><th>Date of Reply:</th><td>'.$row['date_reply'].'</td></tr>
                               <tr><th>Solved Status:</th><td>'.$row['solved'].'</td></tr>';
                      }




                     echo '</tr>
                        <th>Reply Section</th><td class="reply"><textarea name="reply" placeholder="Message Reply"></textarea></td>
                      </tr>
                       <tr>
                      <th>Has this been resolved?</th><td colspan="2"><input type="radio" name="resolve" value="No"><label id="no">No</label><input type="radio" name="resolve" value="Yes"><label id="yes">Yes</label></td>
                      </tr>
                       <tr>
                      <th>Reply</th><td colspan="2"><input type="submit" name="submit" value="Reply"></td>
                      </tr>
                      </table>
                      </form>';


                        }
}











?>

This is my CSS code:

.medical_enquiries_reply input[type="submit"] {
   position: relative;
   top: 346em;
   left: 41em;
   width: 10%;
   height: 40px;
   border:none;
   background-color: #222;
   font-family: arial;
   font-size: 16px;
   color: #fff;
   cursor:pointer;
   border-radius: 1em;
   white-space: nowrap;
}

这是我的CSS代码:
.medical\u查询\u回复输入[type=“submit”]{
位置:相对位置;
顶部:346em;
左:41em;
宽度:10%;
高度:40px;
边界:无;
背景色:#222;
字体系列:arial;
字体大小:16px;
颜色:#fff;
光标:指针;
边界半径:1米;
空白:nowrap;
}

将此行的th更改为td

<th>Reply</th><td colspan="2"><input type="submit" name="submit" value="Reply"></td>
回复
还有所有其他的行,从th开始,以td lol结束

这仅适用于表标题,并且应该由相应的标记关闭

表结构应该如下所示

<table>
  <tr>
    <th>Firstname</th>
    <th>Lastname</th> 
    <th>Age</th>
  </tr>
  <tr>
    <td>Jill</td>
    <td>Smith</td> 
    <td>50</td>
  </tr>
  <tr>
    <td>Eve</td>
    <td>Jackson</td> 
    <td>94</td>
  </tr>
</table>

名字
姓氏
年龄
吉尔
史密斯
50
前夕
杰克逊
94
看看第一个tr如何包含th,所有的ORTHER都是td

您面临的问题是由HTML结构引起的。浏览器没有关闭标记,而是创建了一个奇怪的表。由于标记未正确关闭,因此它尝试通过自己关闭标记来渲染视图,但他没有在适当的位置关闭标记

我还注意到在HTML中有额外的TR结束标记

第一个应该是tr开口

因此,工作台将如下所示:

<form action="medical_enquiries_reply_process.php" method="POST">
    <table class="medical_enquiries_reply">
        <tr>
            <th colspan="3" class="update_title">Welcome to the Administrator\'s Enquiries Reply Section</td>
        </tr>
        <tr><td>Ticket:</td><td>'.$row['ticket'].'<input type="hidden" name="ticket" value="',htmlspecialchars($row['ticket']),'"></td></tr>
        <tr><td>Username:</td><td>'.$row['user_uid'].'</td></tr>
        <tr><td>First Name:</td><td>'.$row['first_name'].'</td></tr>
        <tr><td>Last Name:</td><td>'.$row['last_name'].'</td></tr>
        <tr><td>E-Mail:</td><td>'.$row['email'].'</td></tr>
        <tr><td>Subject:</td><td>'.$row['subject'].'<input type="hidden" name="subject" value="',htmlspecialchars($row['subject']),'"></td></tr>
        <tr><td>Message:</td><td>'.$row['message'].'</td></tr>
        <tr><td>Date of Message:</td><td>'.$row['date_sent'].'</td></tr>
        <tr><td>Message Reply:</td><td>'.$row['message_reply'].'</td></tr>
        <tr><td>Date of Reply:</td><td>'.$row['date_reply'].'</td></tr>
        <tr><td>Solved Status:</td><td>'.$row['solved'].'</td></tr>
        <tr>
            <td>Reply Section</td><td class="reply"><textarea name="reply" placeholder="Message Reply"></textarea></td>
        </tr>
        <tr>
            <td>Has this been resolved?</td><td colspan="2"><input type="radio" name="resolve" value="No"><label id="no">No</label><input type="radio" name="resolve" value="Yes"><label id="yes">Yes</label></td>
        </tr>
        <tr>
            <td>Reply</td><td colspan="2"><input type="submit" name="submit" value="Reply"></td>
        </tr>
    </table>
</form>

欢迎来到管理员的查询回复部分
票务:'.$row['Ticket'].'
用户名:'.$row['user\u uid'].'
名字:'.$row['First_Name'].'
姓氏:'.$row['Last_Name'].'
电子邮件:'.$row['email'].'
主题:'.$row['Subject'].'
消息:'.$row['Message'].'
邮件日期:'.$row['发送日期'.'
邮件回复:'.$row['邮件回复'.'
答复日期:'.$row['答复日期'.'
已解决状态:'.$row['已解决'.'
答复部分
这个问题解决了吗?没有
回复

提交按钮的位置取决于表格的布局。如果将
更改为
(仅用于调试目的;这不是真正的现代HTML),您可能会对正在发生的事情有一个很好的了解。就我个人而言,我会将按钮放在表外的一个“”中,并使用CSS来定位它。将
元素放在同一个
中是完全合法的HTML,而不是OP出现问题的真正原因。他从th开始,用td结束它。。。这根本不“合法”,谢谢你的帮助!所以我猜下面的代码也是错误的,因为我在这里也一直在使用th。。我想每个标题都需要一个th,而不仅仅是主标题。。。。我会查出来的。。。。我应该从一个th开始,然后关闭th,然后打开td,然后关闭TDA。这很奇怪,因为我在我的另一个网站上做了类似的操作,它在那里工作,但不确定为什么按钮在按照建议解决问题后仍然在屏幕上向上移动