我有一个包含可点击行的数据表,这些行将根据所选行转到另一个页面。为了获得该行,我使用了一个表单并将该表单发布到另一个页面以将变量传递给 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>
我正在从数据库中检索几门类(class)的名称并将它们放在一个表中。然后我可以点击它们中的每一个,表单提交将被触发并将信息发送到下一页,在下一页我得到给定的信息并再次从数据库中检索信息。但是,在第二页上,如果我刷新页面,我会得到 p>
最佳答案
当您刷新已从较早的 POST 请求接收数据的页面时,刷新的页面不会包含该数据,除非发出另一个 POST 请求。这可以在 window
中完成对象的 DOMContentLoaded
或 load
事件。
或者,您可以通过 GET 请求发出对数据的初始请求。这会将您作为请求的一部分发送到服务器的任何数据作为附加到 URL 的查询字符串发送。如果您刷新页面,该查询字符串将保留。这仅在您尝试获取的数据来自当前页面的服务器端处理而不是完全来自其他 URL 的情况下才有效。
最后,POST 请求用于更改服务器状态的请求(插入、更新和删除操作类型)。 GET 应该用于读取操作。
没有您的代码,真的没有更多东西可以提供。
编辑:
现在您已经发布了您的代码,我建议您花一些时间清理从您的 .php 文件发回的 HTML 字符串。没有 </input>
这样的标签并且您应该删除内联 HTML 事件属性( onclick
等)。 Here's why .不要使用 javascript:...
要么(出于与链接中相同的许多原因。
最后,我建议您将此从表单提交更改为 AJAX GET 请求,这将允许您停留在同一页面并保留当前加载的数据。
关于javascript - 一旦我刷新通过表单获取数据的页面,一切都会消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44253788/