static public function goBack($count = -1) : void
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.
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.