2017-05-30 7 views
1

J'ai une table de données avec des lignes cliquables qui mènera à une autre page basée sur la ligne qui a été sélectionnée. Pour obtenir la ligne, j'utilise un formulaire et affiche le formulaire sur une autre page pour passer la variable à PHP. Maintenant, le problème est une fois que je rafraichis la page mon information est partie? comment puis-je éviter cela?Une fois que j'actualiser la page qui obtient des données à travers un formulaire, tout sera parti

<?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 Je suis retriving noms de quelques cours de base de données et les mettre dans une table. Ensuite, je peux cliquer sur chacun d'entre eux et la soumission de formulaire sera déclenchée et envoie des informations à la page suivante et à la page suivante je reçois à nouveau les informations données et les informations de retraite de db. Toutefois, sur la deuxième page, si j'actualise la page, j'obtiens

+0

données actuellement chargées. ce que vous avez essayé jusqu'à présent? montrer un peu de code. –

+2

utilisez '' GET' au lieu de POST' –

+1

@Danial, on ne sait pas et il n'y a pas beaucoup d'infos. –

Répondre

4

Lorsque vous actualisez une page qui a reçu des données d'une requête POST antérieure, la page actualisée ne dispose pas de ces données sauf si une autre requête POST est effectuée. Cela peut être fait dans l'événement window de l'objet DOMContentLoaded ou load.

Ou, vous pouvez effectuer la demande initiale pour les données via une requête GET. Cela enverra toutes les données que vous envoyez au serveur dans le cadre de votre requête en tant que chaîne de requête ajoutée à l'URL. Si vous actualisez la page, cette chaîne de requête persistera. Cela ne fonctionnera que si les données que vous essayez d'obtenir proviennent du traitement côté serveur de la page en cours et non d'une autre URL entièrement. Enfin, les requêtes POST concernent les requêtes qui changent l'état du serveur (insérer, mettre à jour et supprimer le type d'opérations). GET devrait être utilisé pour les opérations de lecture.

Sans votre code, il n'y a vraiment plus rien à offrir.

EDIT:

Maintenant que vous avez posté votre code, je suggère de passer un peu de temps et de nettoyage de la chaîne HTML qui est renvoyé à partir de votre fichier .php. Il n'existe pas de balise </input> et vous devez supprimer les attributs d'événement HTML en ligne (onclick, etc.). Here's why. Ne pas utiliser javascript:... soit (pour un grand nombre des mêmes raisons que dans le lien.

Enfin, je vous suggère de modifier ce d'une soumission de formulaire à une demande AJAX GET, ce qui vous permettra de rester sur la même page et garder les

+0

J'ai mis à jour la question –