Partage
  • Partager sur Facebook
  • Partager sur Twitter

AJAX - GET ne change pas l'url

Message console OK "XHR finished loading"

Sujet résolu
    15 octobre 2021 à 15:13:23

    Bonjour,

    Je débute en AJAX. J'ai créé une fonction pour envoyer des paramètres dans l'URL qui fonctionne bien sur une page de mon site.

    Cependant sur une autre page, l'url ne change pas alors la fonction est bien appelée.

    De plus la console affiche bien le message avec l'url que je souhaite appeler : activites.php:138 XHR finished loading: GET "http://localhost//Mon_site_PHP/activites.php?img=933-0.jpg".

    Voici mon code :

    JSCRIPT

    function ajax_get (img) {
    
    var xmlhttp;  
    
        if (window.XMLHttpRequest)
        {
            xmlhttp = new XMLHttpRequest();
        }
        else
        {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function()
        {
            if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
            {
            }
        }
    
    
        console.log(img);
        xmlhttp.open("GET","activites.php?img="+img, true);
        xmlhttp.send();
    
            } 
           
    function modal_img(img)
                        {	
    ajax_get(img);                        }

    PHP

    <img src= "<?php echo $img_rep.$img_0 ?>" 
    onclick="wjavascript:modal_img('<?php echo $img_0 ?>');"><?php } ?>


    Merci de votre aide.

    Jonathan


    • Partager sur Facebook
    • Partager sur Twitter
      16 octobre 2021 à 9:10:20

      Salut,

      Le comportement est parfaitement normal.

      XHR sert a envoyer une requête à un serveur sans changer de page. C'est bien ce que tu es en train de faire.

      Si tu veux changer de page, tu as besoin de modifier location.href.

      Si tu cherches juste à changer l'URL sans changer de page, c'est de history.pushState dont tu as besoin.

      Tu peux parfaitement combiner history.pushState avec une requête xhr pour actualiser les données d'une page sans la recharger tout en enregistrant la modification dans l'historique du navigateur.

      -
      Edité par BrainError 16 octobre 2021 à 9:10:41

      • Partager sur Facebook
      • Partager sur Twitter
        19 octobre 2021 à 14:50:22

        Merci BrainError pour cette réponse. Je comprends mieux.

        En effet sur mon autre page l'URL était modifié car j'appelais la fonction avec un a href au lieu d'un img src...

        Mon besoin initial était de faire passer une variable, j'ai finalement réussi grâcé à la solution suivante :

        JSCRIPT

         var logo = document.getElementById('img_modal');
         logo.src = img ;

        PHP

        <img id="img_modal" src= "" >


        Bonne journée,



        • Partager sur Facebook
        • Partager sur Twitter

        AJAX - GET ne change pas l'url

        × 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