Partage
  • Partager sur Facebook
  • Partager sur Twitter

Dois je utiliser ajax?

    17 décembre 2009 à 18:16:16

    Bonjour,

    Je suis en train de m'amuser à faire ma boutique en ligne.

    Coté PHP je me débrouille, mais la je souhate innover.

    J'ai donc ma page ou les produits sont affichés : http://voilou.fr/test/index_sub3.html

    Je souhaiterai, que lorsqu'on clique sur "Plus d'infos" sous les produits, un descriptif détaillé s'affiche sur le côté droit, dans la partie blanche, et si possible, sans recharger la page...

    Est ce possible?

    Quelle langage (ajax je pense) ?

    Et si vous avez d'autres infos, remarques, elles sont les bienvenues :)

    Merci
    Jo
    • Partager sur Facebook
    • Partager sur Twitter
      17 décembre 2009 à 18:23:57

      Ouais, Ajax (qui n'est pas un langage, soit dit en passant) peut te faire ça. Mais laisse un lien "en dur" vers une page de description pour ceux qui n'ont pas activé le JS.
      • Partager sur Facebook
      • Partager sur Twitter
        17 décembre 2009 à 19:16:31

        Ok merci pour ta réponse :)

        Alors j'ai regardé un tuto et j'ai tenté de m'en inspirer et voila donc le code:

        <script>
        function LoadPage(page,usediv) {
                 // Set up request varible
                 try {xmlhttp = window.XMLHttpRequest?new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");}  catch (e) { alert("Error: Could not load page.");}
                 //Show page is loading
                 document.getElementById(usediv).innerHTML = 'Loading Page...';
                 //scroll to top
                 scroll(0,0);
                 //send data
                 xmlhttp.onreadystatechange = function(){
                         //Check page is completed and there were no problems.
                         if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
                                //Write data returned to page
                                document.getElementById(usediv).innerHTML = xmlhttp.responseText;
                         }
                 }
                 xmlhttp.open("GET", page);
                 xmlhttp.send(null);
                 //Stop any link loading normaly
                 return false;
        }
        </script>
        


        Et j'ai mis dans mon lien :

        Version energy (<a href="mapage.html" onclick="return LoadPage('testajax.txt','page_content');">Plus d'infos</a>)
        


        Et dans le cadre blanc de droite j'ai mis :

        <div id="page_content"></div>
        


        Ca fontionne...Mais je me demande si le code est sécurisé et juste...?

        Merci pour votre aide
        Jo
        • Partager sur Facebook
        • Partager sur Twitter
          17 décembre 2009 à 21:13:11

          Si le fait d'accéder à la page appelées par Ajax ne permet pas d'utiliser plus de failles que ta page HTML normale, oui c'est sécurisé.
          Il faut juste garder à l'esprit que ta page ne sera pas appelées que par ton code JS.
          • Partager sur Facebook
          • Partager sur Twitter
            17 décembre 2009 à 21:32:49

            Ouais, c'est bon comme ça.

            Tu peux même rajouter
            else if ((xmlhttp.readyState == 4) && (xmlhttp.status != 200)) {
                return true;
            }
            

            Comme ça, si Ajax se plante, le lien peut se charger normalement.
            • Partager sur Facebook
            • Partager sur Twitter
              17 décembre 2009 à 21:34:23

              Euh... ça reviendrai à tester deux fois la même chose... des if() imbriqués seraient plus intelligents si je ne me trompe pas...
              • Partager sur Facebook
              • Partager sur Twitter

              Dois je utiliser ajax?

              × 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