刷新页面后数据不显示
问题描述:
通过从表中检索值,数据显示在页面(all.php)中。主要问题在于如果使用“f5-key”或“refresh-icon”刷新页面,在铬的数据保持良好,但一旦我选择的网址和点击“输入”数据消失。可能是什么原因?刷新页面后数据不显示
的index.php
<form action="all.php" method="post">
<p>Get all the Codes</p>
<input type="submit" name="all" >
</form>
all.php
<?php
require 'config.php';
if(isset($_POST['all']))
{
$new_obj= new config;
$rows= $new_obj->Get_All();
foreach($rows as $variable => $value){
echo $value['EAN'].$value['ProductCode']."</br>";
}
}
的config.php
<?php
class config
{
function Get_ALL()
{
try {
$conn = new PDO('mysql:host=localhost;dbname=test',$this->config['username'],$this->config['password']);
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$stmt=$conn->prepare("select EAN,ProductCode from code");
$stmt->execute();
//$rows = $stmt->fetch(PDO::FETCH_ASSOC);
$rows = $stmt->fetchall();
return $rows;
}
catch(PDOException $e)
{
echo 'Error:'. $e->getMessage();
}
}
}
$new_obj= new config;
答
你只查询数据库,如果有一个POST请求。 当你再次加载页面时,使用你的文章中描述的“click and enter”方法,不再有POST请求,但只有GET请求。
您的脚本也不会在数据库中保存您从表单发送的数据。
查询数据库的代码部分应该从if区块测试POST Resquest中取出,并且在这个区块中您应该调用一个(新)方法将数据保存到数据库中。
all.php应该是这个样子:
$new_obj= new config;
if(isset($_POST['all']))
{
// save data in database
}
$rows= $new_obj->Get_All();
foreach($rows as $variable => $value){
echo $value['EAN'].$value['ProductCode']."</br>";
}
答
数据没有被显示时,你直接去URL是因为检查$ _ POST变量,如果条件。
我的意思是,当你点击提交按钮时,它发送发布数据(在这种情况下,它是按钮),所以数据显示。
现在,当您点击刷新按钮或点击F5时,浏览器会重新发送最后一个请求(在这种情况下,与点击具有发布数据的提交按钮相同),这样您的数据就会显示在这种情况下。
但是,当您直接转到您的网址时,它不再包含发布数据,因此您的if条件变为false并且数据将不再显示。
这可能不会有太大的帮助,因为我认为这是已经回答了...
可能是因为当你按下F5键的形式重新发送,而如果按在地址栏中输入它不是。 – Cyclonecode
您已经先了解POST和GET请求。现在通过点击f5按钮刷新页面或刷新浏览器再次发送POST请求到all.php时遇到问题,但是当您按ENTER按钮时,通过选择URL发送GET请求,说明您为什么不是获取数据。 – Bokul