Page 1 sur 2

réactualisé une page et retour historique

Posté : 31 déc. 2019, 12:21
par bernard25
Bonjour à Toutes et à Tous,

Je vous expose mon soucis:

Dans mon backoffice je suis sur une page index.php, je modifie une fiche modification.php je valide mon traitement modification02.php et en bas de cette page je veux revenir au même endroit sur ma page index.php
dans modification02.php:

Code : Tout sélectionner

echo'<meta http-equiv="refresh" content="0;url=index.php" />'; echo'<script type="text/javascript">history.go(-2);</script> ';
history.go(-2) me positionne exactement à l'endroit désiré sur la page index.php mais cette page n'est pas réactualisée

Comment dois-je m'y prendre ?

Merci d'avance et passez de bonnes fêtes de fin d'année

Re: réactualisé une page et retour historique

Posté : 31 déc. 2019, 16:07
par @rthur
Il faut mettre une ancre HTML, c'est la solution la + propre et la + fiable pour faire un positionnement dans une page.

history.back() ou history.go() ne fonctionne que suivant le bon vouloir des navigateurs web et il n'est même pas sûr que le repositionnement du scroll fonctionne sur tous les navigateurs.
Bref => utilise des ancres HTML

Re: réactualisé une page et retour historique

Posté : 31 déc. 2019, 16:53
par bernard25
Bonjour @rthur,
merci pour ta réponse rapide,

J'ai tester sur Firefox, Chrome, opéra, cela fonctionne bien comme ta solution donnée dans un précédent sujet :
<script type="text/javascript">history.back();</script>

concernant une ancre , j'avais testé mais cela me renvoyais en début de ma page sur la première ancre

voici mon code :

Code : Tout sélectionner

if (file_exists($filename)) { echo'<div class="liste"><li>'; echo'<p class="titrephoto">'.$ligne['titre'].'</p>'; echo'<img src="'.$repertoirephoto.$ligne['photo'].'" title='.$ligne['titre'].' /><p>'.$ligne['photo'].'</p>'; echo '</li> <li class="espacemini"></li> <li><a href="modification.php?dirmodif='.$ligne['id'].'" >Modification</a></li> <li class="espacemini"></li> <li><a href="suppression.php?dirsuppr='.$ligne['photo'].'" onclick="return(confirm(\'Etes-vous sûr de vouloir supprimer '.$ligne['photo'].' ?\'));">Suppression</a></li> </div>'; }
avant : echo'<div class="liste"> je peux créer une ancre du style <div id='monchoix'>

Je ne suis pas arrivé à mettre $ligne['id'] dans mon ancre, y a il une solution
encore merci

Re: réactualisé une page et retour historique

Posté : 31 déc. 2019, 17:11
par @rthur
Qu'as-tu essayé exactement ? Quel code PHP as-tu mis et qui ne donne pas le résultat escompté (regarde la source HTML pour voir le résultat)

Re: réactualisé une page et retour historique

Posté : 31 déc. 2019, 17:36
par bernard25
voici mon code :

Code : Tout sélectionner

while ($ligne = $reponse->fetch()) { $id=$ligne['id']; $renvoi=$id; $repertoirephoto=$repertoirephotos.'/'.$ligne['dossier'].'/'; $_SESSION['dossier']=$ligne['dossier']; $_SESSION['id']=$ligne['id']; $filename = $repertoirephoto.$ligne['photo']; if (file_exists($filename)) { echo'<div id="monchoix"><div class="liste"><li>'; echo'<p class="titrephoto">'.$ligne['titre'].'</p>'; echo'<img src="'.$repertoirephoto.$ligne['photo'].'" title='.$ligne['titre'].' /><p>'.$ligne['photo'].'</p>'; echo '</li> <li class="espacemini"></li> <li><a href="modification.php?dirmodif='.$ligne['id'].'" >Modification</a></li> <li class="espacemini"></li> <li><a href="suppression.php?dirsuppr='.$ligne['photo'].'" onclick="return(confirm(\'Etes-vous sûr de vouloir supprimer '.$ligne['photo'].' ?\'));">Suppression</a></li> </div></div>'; } }
En mettant un div au début, j'ai toute mes fiches l'une en dessous des autres normal puisque pas de css

mon code en faisant 'code source de la page :
<div class="liste"><li><div id="monchoix"><p class="titrephoto">Extérieur</p><img src="../../img/photos/store//exterieur/onx1.jpg" title=Extérieur /><p>onx1.jpg</p></li>
<li class="espacemini"></li>
<li><a href="modification.php?dirmodif=8" >Modification</a></li>
<li class="espacemini"></div>

Merci

Re: réactualisé une page et retour historique

Posté : 31 déc. 2019, 18:16
par or 1
c'est le 3ème sujet sur la même question.
pas de # dans le code source généré, donc cela ne peut pas fonctionner.

Re: réactualisé une page et retour historique

Posté : 01 janv. 2020, 12:11
par bernard25
Bonjour à Toutes et à Tous, permettez-moi de vous présenter mes meilleurs voeux pour cette nouvelle année

Merci Mammouth,

la réponse d' @rthur que je remercie vivement me conseillant d'utiliser les ancres remontent effectivement au premier sujet

Ma question était actualiser la page index.php après modification et traitement en JavaScript

concernant les ancres je vous joint mon bout de code:

Code : Tout sélectionner

while ($ligne = $reponse->fetch()) { $id=$ligne['id']; $renvoi=$id; $repertoirephoto=$repertoirephotos.'/'.$ligne['dossier'].'/'; $_SESSION['dossier']=$ligne['dossier']; $_SESSION['id']=$ligne['id']; $filename = $repertoirephoto.$ligne['photo']; if (file_exists($filename)) { echo'<div id="monchoix" class="liste"><li>'; echo'<p class="titrephoto">'.$ligne['titre'].'</p>'; echo'<img src="'.$repertoirephoto.$ligne['photo'].'" title='.$ligne['titre'].' /><p>'.$ligne['photo'].'</p>'; echo '</li> <li class="espacemini"></li>'; //<li><a href="modification.php?dirmodif='.$ligne['id'].'#monchoix" >Modification</a></li> echo'<li><a href="modification.php?dirmodif='.$ligne['id'].'#monchoix'.$ligne['id'].'" >Modification</a></li> <li class="espacemini"></li> <li><a href="suppression.php?dirsuppr='.$ligne['photo'].'" onclick="return(confirm(\'Etes-vous sûr de vouloir supprimer '.$ligne['photo'].' ?\'));">Suppression</a></li> </div>'; } }
voici ce que me retourne le code source de ma page :

Code : Tout sélectionner

<div id="monchoix" class="liste"><li><p class="titrephoto">Extérieur</p><img src="../../img/photos/store//exterieur/exterieur.jpg" title=Extérieur /><p>exterieur.jpg</p></li> <li class="espacemini"></li><li><a href="modification.php?dirmodif=9#monchoix9" >Modification</a></li> <li class="espacemini"></li> <li><a href="suppression.php?dirsuppr=exterieur.jpg" onclick="return(confirm('Etes-vous sûr de vouloir supprimer exterieur.jpg ?'));">Suppression</a></li> </div>
effectivement je suis bien sur l'id : 9
ma page index.php après traitement se trouve en haut de page et non pas à l'endroit désiré

Qu'ai-je fais(ou pas) pour que cela ne fonctionne pas

Merci beaucoup
Bonne journée

Re: réactualisé une page et retour historique

Posté : 01 janv. 2020, 15:04
par or 1
dans le bout de code montré, il n'y a pas d'élément avec un id "monchoix9".
si le choix 9 est supprimé, qu'il n'apparait plus dans la page rafraichie, alors il faut pointer vers l'item précédent et non le 9.

Re: réactualisé une page et retour historique

Posté : 01 janv. 2020, 16:14
par bernard25
Merci

je vois pourtant bien dans modification :

Code : Tout sélectionner

<li class="espacemini"></li><li><a href="modification.php?dirmodif=9[color=#BF00FF]#monchoix9[/color]" >Modification</a></li>

Re: réactualisé une page et retour historique

Posté : 01 janv. 2020, 16:15
par or 1
<div id="monchoix"

Re: réactualisé une page et retour historique

Posté : 01 janv. 2020, 17:00
par bernard25
Merci Mammouth,

J'ai poursuivi mon idée en Javascript

Voici le code utilisé :
Dans ma page de traitement modification02.php

$_SESSION['rechercheposition'] =0;

if(isset($_POST['envoyer'])) {

$_SESSION['rechercheposition'] =1;

et en bas de page :

Code : Tout sélectionner

echo'<script type="text/javascript">history.go(-2);</script> ';



Dans ma page index.php dans le While :

Code : Tout sélectionner

if (file_exists($filename)) { if(isset($_SESSION['rechercheposition'])){ if ($_SESSION['rechercheposition'] ==1){ echo'<meta http-equiv="refresh" content="0;url=index.php" />'; $_SESSION['rechercheposition']=0; } }
Fonctionne sous Firefox
Est-ce que le code est bon ?

Merci encore

Re: réactualisé une page et retour historique

Posté : 02 janv. 2020, 10:33
par bernard25
Bonjour à Tous,

Je suis intéressé par les ancres proposés par @rthur et Mammouth

Voici mes modifications :

Dans ma page de traitement modification02.php en fin de page :

Code : Tout sélectionner

echo '<script language="JavaScript">alert("La modification a bien été enregistrée.")</script>'; echo'<script>location.href="index.php"</script>';

Page index.php

Code : Tout sélectionner

$monchoix = "monchoix".$ligne["id"]; echo'<div id="'.$monchoix.'" class="liste"><li>'; echo'<p class="titrephoto">'.$ligne['titre'].'</p>'; echo'<img src="'.$repertoirephoto.$ligne['photo'].'" title='.$ligne['titre'].' /><p>'.$ligne['photo'].'</p>'; echo '</li> <li class="espacemini"></li> <li><a href="modification.php?dirmodif='.$ligne['id'].'" >Modification</a></li>'; echo'<li class="espacemini"></li> <li><a href="suppression.php?dirsuppr='.$ligne['photo'].'" onclick="return(confirm(\'Etes-vous sûr de vouloir supprimer '.$ligne['photo'].' ?\'));">Suppression</a></li> </div>';
et voici le code source après traitement de la page index.php

Code : Tout sélectionner

<div id="monchoix9" class="liste"><li><p class="titrephoto">Extérieur</p><img src="../../img/photos/store//exterieur/exterieur.jpg" title=Extérieur /><p>exterieur.jpg</p></li> <li class="espacemini"></li> <li><a href="modification.php?dirmodif=9" >Modification</a></li><li class="espacemini"></li> <li><a href="suppression.php?dirsuppr=exterieur.jpg" onclick="return(confirm('Etes-vous sûr de vouloir supprimer exterieur.jpg ?'));">Suppression</a></li> </div>
Je me retrouve en haut de page et pas à l'endroit désiré

Une idée
Merci beaucoup

Re: réactualisé une page et retour historique

Posté : 02 janv. 2020, 11:10
par bernard25
j'ai modifié ma div : en ajoutant un #

Code : Tout sélectionner

echo'<div id="#'.$monchoix.'" class="liste"><li>';
L'ancre ne fonctionne pas
voici le code source de la page :

Code : Tout sélectionner

<div id="#monchoix9" class="liste"><li><p class="titrephoto">Extérieur</p><img src="../../img/photos/store//exterieur/exterieur.jpg" title=Extérieur /><p>exterieur.jpg</p></li> <li class="espacemini"></li> <li><a href="modification.php?dirmodif=9monchoix9" >Modification</a></li><li class="espacemini"></li> <li><a href="suppression.php?dirsuppr=exterieur.jpg" onclick="return(confirm('Etes-vous sûr de vouloir supprimer exterieur.jpg ?'));">Suppression</a></li> </div>
Le numéro 9 et l'id de la table dans ma bdd
Merci

Re: réactualisé une page et retour historique

Posté : 02 janv. 2020, 19:26
par @rthur
Le # c'est uniquement dans l'url pas dans la balise HTML.

Arrête tout et fait UNIQUEMENT une page en pure HTML juste poiur que tu comprennes ce que tu fais parce que là tu mélange tout en bidouillant.
Fait fonctionner des ancres dans une page HTML bidon et ensuite adapte ça à ton code PHP

Re: réactualisé une page et retour historique

Posté : 03 janv. 2020, 11:56
par bernard25
bonjour @rthur,

ma classe class="liste" me permet d'afficher cote à cote 5 enregistrements, pour l'instant il y a 30 (fiches) enregistrements

Effectivement, je patauge
j'ai déjà modifié le # je pense qu'il est à sa bonne place
voici mon code :
$monchoix = pour le div id
et $monchoix02 pour le href

Code : Tout sélectionner

$monchoix = "#monchoix".$ligne["id"]; $monchoix02 = "monchoix".$ligne["id"]; echo'<div id="'.$monchoix02.'" class="liste"><li>'; echo'<p class="titrephoto">'.$ligne['titre'].'</p>'; echo'<img src="'.$repertoirephoto.$ligne['photo'].'" title='.$ligne['titre'].' /><p>'.$ligne['photo'].'</p>'; echo '</li> <li class="espacemini"></li> <li><a href="modification.php?dirmodif='.$ligne['id'].$monchoix.'#monchoix9" >Modification</a></li>'; echo'<li class="espacemini"></li> <li><a href="suppression.php?dirsuppr='.$ligne['photo'].'" onclick="return(confirm(\'Etes-vous sûr de vouloir supprimer '.$ligne['photo'].' ?\'));">Suppression</a></li> </div>';
merci beaucoup