Méthode goBack

htmlDocument

static public function goBack($count = -1) : void

Description

Cette fonction utilitaire génère une page web contenant un simple appel au code javascript history.go(count) afin de forcer un retour dans l'historique de navigation.

Usage

Lorsque vous valider un formulaire, votre navigateur charge une nouvelle page en laissant une trace dans l'historique de navigation. Si l'utilisateur clique sur le bouton "Retour" de celui-ci, la page du formulaire sera ré-affichée. Pire encore, si l'action choisie permettait de supprimer l'enregistrement, la page ré-affichée pointera sur un enregistrement qui n'existe plus.

Pour éviter cet effet de bord, vous pouvez utiliser AJAX pour valider votre formulaire; dans ce cas l'historique de navigation n'est pas altéré; ou faire appel à la méthode goBack pour remonter dans l'historique de navigation.

De façon classique, l'utilisateur est au départ sur une liste d'enregistrements (historique = 0). Il clique sur un lien pour ouvrir l'enregistrement de son choix (historique = +1). Puis il choisit une action telle que Valider, Supprimer, ... (historique = +2). Pour revenir à la liste initiale, il suffit alors, une fois le traitement effectué, de revenir deux pages en arrière.


<?php

  
require_once('../classes.php');

  
// en cas de modification
  
if (...) {
    
// mettre à jour la base de données
    
httpDocument::goBack(-2); // retour sur la liste, 2 pages avant
  
}

  
// en cas de suppression
  
if (...) {
    
// mettre à jour la base de données
    
httpDocument::goBack(-2); // retour sur la liste, 2 pages avant
  
}

  
// affichage normal
  
$document = new htmlDocument();
  ...
  
$document->output();

Notez que Pho construisant la page en mémoire dans une hiérarchie d'objets, vous pouvez très bien invoquer la méthode goBack n'importe où dans votre code. Ce n'est que lors de l'appelle à la méthode output, que la page en cours de création sera effectivement générée.