刷新页面后数据不显示

问题描述:

通过从表中检索值,数据显示在页面(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; 
+1

可能是因为当你按下F5键的形式重新发送,而如果按在地址栏中输入它不是。 – Cyclonecode

+1

您已经先了解POST和GET请求。现在通过点击f5按钮刷新页面或刷新浏览器再次发送POST请求到all.php时遇到问题,但是当您按ENTER按钮时,通过选择URL发送GET请求,说明您为什么不是获取数据。 – Bokul

你只查询数据库,如果有一个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并且数据将不再显示。

这可能不会有太大的帮助,因为我认为这是已经回答了...