Partage
  • Partager sur Facebook
  • Partager sur Twitter

Include rafraichit Automatiquement

AJAX ou PHP

Sujet résolu
    8 novembre 2010 à 11:21:44

    Bonjour,

    je suis sur un projet d'études (DUT Informatique) où nous devons réaliser un site web de E-commerce. J'ai un problème avec un aperçu du panier.
    L'architecture du site est assez simple. Une page index.html pour une page d'acceuil qui redirige vers une page site.php qui est la base du site. J'y inclue header, menu, footer et, via une variable GET, le contenu.

    Je souhaiterais inclure dans le header un aperçu du panier avec le nombre d'articles présents et le montant. Chose assez facile mais j'aimerais que ce petit include dans mon header (vous suivez? xD) s'actualise à chaque modification du panier.
    En cherchant sur le net j'ai vu quelques solutions avec les meta en html ou quelques pistes en AJAX mais où on actualiser la page entière.

    Je cherche donc un script, AJAX je pense même si PHP serait mieux, qui actualise le include automatiquement à la modification du panier qui est stocké dans un tableau $_SESSION['panier'].

    Merci d'avance ^^.
    • Partager sur Facebook
    • Partager sur Twitter
      8 novembre 2010 à 14:14:46

      Euh... mais les modifications du panier, elles sont faites par quel biais ? Avec ou sans rechargement/changement de page ?
      • Partager sur Facebook
      • Partager sur Twitter
        8 novembre 2010 à 19:27:54

        Les modif du panier sont effectuées sur la page site.php qui charge dynamiquement la liste des articles, la vue du panier, la page de contact ou autre. Donc l'include de mon aperçu du panier et fait au premier chargement du site après la page d'accueil et ensuite elle n'est pas rechargée. Je voudrais donc recharger cette partie lorsqu'il y a des modifications sur le panier.

        Merci de ta réponse.
        • Partager sur Facebook
        • Partager sur Twitter
          8 novembre 2010 à 19:37:07

          Bah et comment tu fais les modifs du panier sur site.php sans changer de page ?

          Via Ajax ? Via une iframe ?
          • Partager sur Facebook
          • Partager sur Twitter
            8 novembre 2010 à 21:07:33

            Variables $_SESSION et un fichier fonctions inclus au chargement de site.php qui sont utilisés via les boutons sur les articles pour ajouter et via la page de visualisation complète du panier on peut supprimer des articles ou finaliser la commande.

            Tout fonctionne correctement même mon intégration Paypal pour le paiement.
            • Partager sur Facebook
            • Partager sur Twitter
              8 novembre 2010 à 22:01:36

              Les boutons sur les articles entraînent bien un rechargement de la page non ? o_O
              • Partager sur Facebook
              • Partager sur Twitter
                8 novembre 2010 à 22:01:46

                Ce que le champi plus haut essaie de dire c'est que tu dois faire ces modifications du panier en AJAX, et pas juste recharger le panier, vu que dans l'état actuel de ton site tu dois changer de page pour pouvoir sélectionner (en PHP) un produit.

                L'AJAX c'est (dans sa finalité) du PHP : tu utilise Javascript pour envoyer des données à ta page de traitement PHP plutôt que de le faire en suivant un lien ou en validant un formulaire.

                Si ton site est déjà fonctionnel ça devrait être très simple de rajouter une sur-couche d'AJAX : le but du jeu c'est d'intercepter tous les liens et validations formulaires qui normalement font changer de page (un simple onclick/onsubmit avec ta fonction javascript), et faire passer ces information en AJAX à la place. Une fois ces données envoyées et traitées par ta page PHP, tu pourras utiliser une fonction de callback qui rechargera le contenu de ton panier.
                • Partager sur Facebook
                • Partager sur Twitter
                  8 novembre 2010 à 22:03:59

                  Citation : Geoffrey-Zéro

                  Ce que le champi plus haut essaie de dire c'est que tu dois faire ces modifications du panier en AJAX, et pas juste recharger le panier, vu que dans l'état actuel de ton site tu dois changer de page pour pouvoir sélectionner (en PHP) un produit.



                  Ce que j'essaye de comprendre, c'est si le site actuel utilise déjà Ajax ou non...

                  Car si on peut modifier le panier, sans que l'include ne soit affecté... ça sent l'Ajax... o_O
                  • Partager sur Facebook
                  • Partager sur Twitter
                    8 novembre 2010 à 22:15:57

                    Dans mon cas tout ce fait en PHP. Mon include d'aperçu n'est qu'un affichage.

                    Pour vous aider à me comprendre voici le site : http://a1jeanne.u7n.org/Thomas/site.php.

                    Je parle ici de l'encart en haut à droite "Aperçu du panier". Avec mon système actuel je pourrais inclure le rafraichissement Ajax ou autre dans mes fonctions d'ajout, de suppression d'éléments au panier.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      8 novembre 2010 à 22:29:54

                      Tu n'as pas besoin d'AJAX, et tu n'as pas besoin d'un bouton. Il faudrait simplement afficher ces informations tout le temps (si elles existent). Une simple structure conditionnelle suffirait.

                      On parle bien du petit texte qui dit combien d'articles on a sélectionné (parce que le panier en lui-même s'affiche quand on ajoute un produit).
                      • Partager sur Facebook
                      • Partager sur Twitter
                        8 novembre 2010 à 22:35:25

                        Oui c'est bien ce texte. Mais le include de l'aperçu du panier n'est fait qu'au chargement de site.php qui n'est fait que la première fois comment le rafraichir "tout le temps".

                        J'ai essayé le meta HTML avec le temps de rafraichissement en secondes, c'est un peu lourd et on ré-actualise tout le site juste pour un petit include...
                        • Partager sur Facebook
                        • Partager sur Twitter
                          8 novembre 2010 à 22:44:39

                          Mais non il n'est pas fait qu'au chargement... Il est fait à chaque fois que tu changes de page...

                          A mon avis, le problème vient juste du fait que tu fais ton include avant de modifier la variable de session...
                          • Partager sur Facebook
                          • Partager sur Twitter
                            8 novembre 2010 à 22:51:35

                            Je pense aussi.

                            PHP est un peu linéaire, on est souvent confronté à ce genre de problème, mais il y a toujours une solution. Si tu as besoin de conserver un certain ordre dans la formation du HTML qui ne correspond pas à l'ordre de tes includes, rien ne t'empêche d'utiliser dans tes includes des variables pour stocker le code HTML, et faire un echo sur ces variables où tu veux plus tard.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              8 novembre 2010 à 22:55:03

                              Mais je ne change jamais de page je reste toujours sur site.php dont voici le contenu de <body /> :

                              <div id="header">
                              	<?php include "header.php"; ?>
                              </div>
                              
                              <div id="center">
                              	<div id="menu">
                              		<?php include "menu.php"; ?>
                              	</div>
                              			
                              	<div id="contenu">
                              		<?php
                              			include "$script";
                              		?>
                              	</div>
                              </div>
                              
                              <div id="footer"><?php include "footer.htm" ?></div>
                              


                              Pour la variable $script j'inclus au lancement un _titre.php qui contient un tableau de toutes mes pages créées.
                              Tous les liens du site son ensuite de la forme site.php?page=MaPage.
                              En ce qui concerne mon aperçu il est inclus dans le fichier header.php. Je ne pense vraiment pas qu'il soit inclus à chaque changement de page sinon je n'aurais pas de problème ^^.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                8 novembre 2010 à 23:10:02

                                Citation : crazyspyd3r

                                En ce qui concerne mon aperçu il est inclus dans le fichier header.php. Je ne pense vraiment pas qu'il soit inclus à chaque changement de page sinon je n'aurais pas de problème ^^.



                                Bah moi je pense que si. x)

                                Regarde, ajoute un article au panier. Tu arrives sur la page du panier, avec le tableau. Mais le texte en haut n'a pas changé.

                                Mais là, si tu cliques sur n'importe quel lien (Tous, Contact, etc. ou même le bouton Précédent de ton navigateur), le texte sera mis à jour.

                                Tu as juste un rechargement de retard, quoi.
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  8 novembre 2010 à 23:15:31

                                  Ah oui merci, je viens de comprendre mon erreur de raisonnement. Je dois donc executer mes fonctions de modification du panier avant de faire l'include du panier ou faire cet include après c'est bien ça?
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    8 novembre 2010 à 23:17:15

                                    Ouaip, c'est ce que je pense.
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      9 novembre 2010 à 13:23:22

                                      J'ai modifié pour que ma fonction ajouterPanier soit exécutée avant l'aperçu du panier dans une condition.

                                      Aucun besoin d'AJAX ou autre ici le PHP fonctionne très bien.

                                      Merci pour votre aide.
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      Include rafraichit Automatiquement

                                      × 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