Partage
  • Partager sur Facebook
  • Partager sur Twitter

JS - Scroll et sours après redirection

    15 septembre 2017 à 17:12:06

    Bonjour,

    J'espère que le POST est bien dans cette rubrique.

    Je suis en train de faire un site, et j'affiche toute les photos avec une boucle qui lit dans ma bdd.

    Pour chaque photo, j'ai la possibilité de mettre un like.

    Quand je clique sur le like, je fait une redirection php avec executer la requete sql (dans un autre fichier et une fois ce fichier executé, je renvoie la page de toute à l'heure) mais du coup vu que je fait une redirection, le scroll est tout en haut.

    Je voulais savoir comment je pourrai faire pour que quand je fasse ma redirection, il m'envoie exactement au même endroit que là où j'étais.

    En gros, recuperer le nombre de pixel defilé et apres la redirection, qu'il me remmette au meme endroit.

    J'espère que vous allez pouvoir m'aider.

    Si je n'ai pas était clair, n'hésitez pas à me poser des questions (c'est pas facile à expliquer)....

    Merci d'avance

    Florian

    • Partager sur Facebook
    • Partager sur Twitter
      15 septembre 2017 à 18:09:59

      Salut,

      il vaut mieux ne pas rediriger l'utilisateur utilise une requete AJAX pour appeler ta page en arrière plan

      var xhr = new XMLHttpRequest();
      
      xhr.onreadystatechange = function() {
      	if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
      		xhr.responseText 
      	}
      };
      
      xhr.open("GET", "le_lien_vers_ta_page_php", true);
      xhr.send(null);



      • Partager sur Facebook
      • Partager sur Twitter
        16 septembre 2017 à 11:09:02

        Merci beaucoup de ta réponse, mais je n'y connait rien en AJAX, peut-tu me dire où mettre ce code et comment executer ?

        J'utilise actuellement un header en php, je le remplace par quoi ?

        Merci d'avance

        Florian

        • Partager sur Facebook
        • Partager sur Twitter
          16 septembre 2017 à 15:03:06

          tout dépend de comment sont structurés tes pages si tu utilise des requêtes POST ou GET mais en gros tu envoi a ta page l'identifiant de l'image que tu as "liké" et celle ci fait l'appel SQL
          • Partager sur Facebook
          • Partager sur Twitter
            16 septembre 2017 à 15:26:31

            Quand je clique, pour mettre un like, j'utilise un onclick, pour executer la fonction like.

            La fonction like changer l'image du like (contour rouge = displike et remplissage rouge = like) et ensuite un windows location pour la redirection vers le fichier .js

            Et une fois le fichier .js executé, un redirection php avec un header location.

            • Partager sur Facebook
            • Partager sur Twitter
              16 septembre 2017 à 17:44:20

              Salut,

              l'AJAX permet d'envoyer une requete sans recharger ta page.

              Le principe est le même à une nuance près dans le javascript

              Quand le visiteur clique sur l'image avec onclick, tu lui fait executer un script

              code de cesium133

              celui-ci effectue une requete sur ton serveur à la page indiqué.

              A ce moment tu enregistres le like normalement.

              Puis à la fin de javascript, au lieu de le rediriger, si le retour de la page est valide, tu changes la couleur du like.

              • Partager sur Facebook
              • Partager sur Twitter
                16 septembre 2017 à 18:43:55

                Mon image like (img qui sert de button) :

                <img id = "like'.$donnees['id'].'" onclick = "like('.$donnees['id'].', '.$_SESSION['id'].');" src = "mon_image_dislike" />

                Ma fonction js like :

                function like(id, id_invites) {
                               if(document.getElementById('like'+id).src=="mon_image_dislike") {
                document.getElementById('like'+id).src="mon_image_like",
                window.location="like.php?photo="+id+"&id_invites="+id_invites; } else { document.getElementById('like'+id).src="dislike.png", window.location="dislike.php?photo="+id+"&id_invites="+id_invites; } }


                Après, dans le fichier like et dislike, enregistrement du like ou du dislike.

                Et pour terminer :

                header('Location: le fichier precedent.php');

                Que dois-je faire précisement et où ???

                Merci beaucoup.


                -
                Edité par FlorianJACQUIER 16 septembre 2017 à 18:45:15

                • Partager sur Facebook
                • Partager sur Twitter

                JS - Scroll et sours après redirection

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown