2016-11-30 41 views
1

データは、テーブルから値を取得することによってページ(all.php)に表示されます。ここでの主な問題は、「f5キー」または「リフレッシュアイコン」を使用してページを更新すると、クロムではデータは良好に保たれますが、一度URLを選択して「入力」を押すとデータが消えます。理由は何でしょうか?ページを更新した後にデータが表示されない

<?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>"; 
    } 
} 

all.php

のindex.php

<form action="all.php" method="post"> 
    <p>Get all the Codes</p> 
    <input type="submit" name="all" > 
</form> 

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

助けの多くではないかもしれません。 – Cyclonecode

+1

あなたはまずPOSTとGET要求を理解しています。今すぐあなたの問題に来るf5ボタンを押すかリフレッシュブラウザを押すと、POST要求を再度all.phpに送信しますが、あなたがなぜあなたがいないことをGET要求を送信するURLを選択してEnterボタンを押しているデータを取得する。 – Bokul

答えて

1

POSTリクエストがあります場合にのみ、データベースを照会しています。 あなたの投稿に記載されている「クリックして入力」メソッドを使用して、ページを再度読み込むと、もはやPOST要求はなく、GET要求のみです。

また、スクリプトは、フォームから送信するデータをDBに保存しません。

データベースを照会するコードの一部は、POSTリクエストのifブロックテストから取り除かれ、このifブロック内では、(新しい)メソッドを呼び出してデータをデータバースに保存する必要があります。

all.phpは次のようになります。あなたが直接URLに行くとき

$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>"; 
    } 
1

データが表示されていないので、$ _POST変数をチェックするIF条件です。

送信ボタンをクリックすると、投稿データ(この場合はボタンです)が送信されるので、データが表示されます。

更新ボタンをクリックするか、F5キーを押すと、ブラウザは最後のリクエストを再送します(この場合、投稿データがある送信ボタンをクリックしたときと同じです)ので、この場合データが表示されます。

あなたのURLに直接行くと、それはもはや投稿データを含んでいないので、if条件が偽になり、データはもはや表示されません。

私はそれが既に回答されていると思うので、フォームF5キーを押したときに押すと、それはないロケーションバーに入力しながら、送り直しているので、これはおそらく...

関連する問題