IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HTML Discussion :

Rouvrir une page sur le même élément au même emplacement.


Sujet :

HTML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Mars 2012
    Messages : 34
    Par défaut Rouvrir une page sur le même élément au même emplacement.
    Bonjour,
    J'ai trouvé sur le forum des questions identiques mais sans réponse satisfaisante.
    Dans un tableau HTML créé en Php et affichant des données extraites d'une base de données il y a de nombreuses lignes donc présence d'un ascenceur.
    En cliquant sur une de ces lignes, j'initialise un traitement qui remplace cette fenêtre par une autre puis revient sur cette première page en la mettant à jour.
    Je souhaite que cette page se réouvre au même endroit qu'initialement.

    Ma première idée a donc été de créer dynamiquement des ancres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo"<a id=\"$id_compta2\" class='blancXXsmall' href=\"........
    d'effectuer mon traitement puis de réouvrir ma page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var LOC="K.comptabiliT.php#<?echo"$id_compta"?>";	//On réouvre là où on était.
    window.location.href=(LOC);
    Ca marche très bien, mais ce n'est pas ce que je souhaite.
    On retrouve la ligne en haut de page ou ailleurs fonction de sa position initiale mais pas exactement à la même place.
    L'utilisateur doit comprendre que sa ligne est en haut ou pas s'il n'y a pas assez de lignes en dessous pour le scrolling.

    Suis-je assez clair. Avez-vous une idée ?

    Merci

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 217
    Par défaut
    Bonsoir,
    il te faut sauvegarder la position du scroll de ta page et de faire scroller celle ci de la valeur sauvegardée au réaffichage.
    - utilisation de cookies
    - passage en paramètre de l'URL

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 217
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    Bonsoir,
    il te faut sauvegarder la position du scroll de ta page et de faire scroller celle ci de la valeur sauvegardée au réaffichage.
    - utilisation de cookies
    - passage en paramètre de l'URL
    il s'agit bien d'une réponse!

    Que n'arrives tu pas à faire?

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Mars 2012
    Messages : 34
    Par défaut
    Dis-moi comment on mémorise un scroll et comment on restitue un scroll.

    Ce que je veux c'est que si ma ligne est la septième en partant du haut de la page d'un utilisateur, elle soit encore la septième après réouverture.

    Les ancres gérées dynamiquement fonctionnent bien mais ramènent la ligne soit en tête soit n'importe où selon le nombre de lignes qui restent et la taille de la fenêtre.

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 217
    Par défaut
    tu es un petit veinard, j'ai encore l'exemple que j'ai déjà servi sur le forum.

    Je te le livre, il mets en oeuvre le stockage du scroll dans le NAME de window.page, c'est pas très orthodoxe mais cela fonctionne.
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>[...]</title>
    <meta name="Author" content="NoSmoking">
    <style type="text/css">
    </style>
    <script type="text/javascript">
    (function(){
      function getScrollPage(){
        var dE = document.documentElement,
            dB = document.body;
            var posX = ( dE && dE.scrollLeft || dB && dB.scrollLeft || 0);
            var posY = ( dE && dE.scrollTop  || dB && dB.scrollTop  || 0);
            return {x : posX, y : posY};
      }
      window.onload = function(){
        if( window.name){
          var pos = window.name.split('=')[1] || 0;
          window.scrollTo( 0, pos);
        }
      }
      window.onunload = function(){
        var pos = getScrollPage();
        window.name = "scrollY=" +pos.y;
      }
    })();
    </script>
    </head>
    <body>
    <div style="height:1000px;">
    </div>
    <div style="height:400px;">
      <form action="window_scroll.html" name="formulaire">
        <input type="text" value="the value" name="valeur"><br>
        <input type="submit" value="Envoyer">
      </form>
    </div>
    </body>
    </html>

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Mars 2012
    Messages : 34
    Par défaut
    Oui, ca peut m'intéresser.
    J'essaye d'intégrer ton code dans le mien
    Je ne comprends pas :
    ligne 10 : la parenthèse ouvrante avant "function".
    ligne 28 : la batterie de parenthèses )() avant le ";"

    posX est-il utile dans ton script ?

    Je pensais que le name de l'objet window était en lecture seule ?

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Mars 2012
    Messages : 34
    Par défaut
    Bah oui, c'est exactement ma question et ce que je recherche c'est une solution !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer des éléments d'une page sur internet
    Par patricktoulon dans le forum Général VBA
    Réponses: 50
    Dernier message: 02/02/2012, 18h55
  2. rafraichir une page sur une liste de selection
    Par klimero dans le forum Général JavaScript
    Réponses: 26
    Dernier message: 20/07/2006, 15h52
  3. Réponses: 18
    Dernier message: 22/06/2006, 17h55
  4. Envoyer une page sur internet avec delphi 7
    Par Stephane1 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 02/01/2006, 19h12
  5. [C#] Recharger une page sur le clic d'une ListBox
    Par pc152 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 14/02/2005, 12h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo