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 #
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