一旦我刷新了通过表单获取数据的页面,每件事都会消失

时间:2017-05-30 05:01:41

标签: javascript php html forms form-submit

我有一个包含可点击行的数据表,这些行将导致基于所选行的另一个页面。要获取行,我使用表单并将表单发布到另一个页面以将变量传递给php。现在,问题是我刷新页面后我的信息消失了吗? 我怎么能避免这种情况?

  <?php 
    $id = $_SESSION["uid"];

    $sql = "select * from std_cources join courses where std_cources.std_id = '$id' and courses.course_id = std_cources.course_id";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {
      while($row = $result->fetch_assoc()) {
        echo '
              <div class="col-md-4">
              <span class="fa-stack fa-4x">
              <i class="fa fa-circle fa-stack-2x text-primary"></i>
              <i class="fa fa-shopping-cart fa-stack-1x fa-inverse"></i>
              </span>
              </br>
              <p style="color:white;">'.$row["course_name"].'</p>
              <a href="javascript: functionTest('.$row["course_id"].')" style="color:white;">Check forthe exams </a>           
              <form name="myform" id="'. $row["course_id"].'"  action="checkMarks.php" method="post">
              <input type= "text" value ="'. $row["course_id"].' " name="test" style="visibility: hidden;"></input>
              </form>
              </br>                 
            </div>';
      }
    }
?>

   <script >
     function functionTest(form_id) {
       document.getElementById(form_id).submit();
     }
   </script>

enter image description here 我正在从数据库中查找几个课程的名称并将它们放在一个表格中。然后我可以点击它们中的每一个,表单提交将被触发并将信息发送到下一页,在下一页中,我将再次收到给定的信息并从db重新获得信息。然而,在第二页上,如果我刷新页面,我得到

1 个答案:

答案 0 :(得分:4)

当您刷新从早期POST请求接收数据的页面时,刷新的页面将不会拥有该数据,除非发出另一个POST请求。这可以在window对象的DOMContentLoadedload事件中完成。

或者,您可以通过GET请求对数据进行初始请求。这将作为请求的一部分将您发送到服务器的任何数据作为附加到URL的查询字符串发送。如果刷新页面,该查询字符串将保持不变。这只有在您尝试获取的数据来自当前页面的服务器端处理而不是完全来自其他URL时才有效。

最后,POST请求适用于更改服务器状态的请求(插入,更新和删除操作类型)。 GET应该用于读取操作。

如果没有您的代码,那么提供的内容真的不多。

编辑:

现在您已经发布了代码,我建议花一些时间来清理从.php文件发回的HTML字符串。没有</input>这样的标记,您应该删除内联HTML事件属性(onclick等)。 Here's why。也不要使用javascript:...(出于与链接相同的许多原因。

最后,我建议您将表单提交更改为 AJAX GET请求,这样您就可以保持同一页面并保留当前加载的数据。< / p>