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

AJAX Discussion :

Exécution de fonctions


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 43
    Par défaut Exécution de fonctions
    Bonjour. Voila mon soucis:

    J'ai ce lien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <a onclick="captureecran();alert('ajouté au panier avec succès');window.location.href='../index.php';" href="javascript:ajax_panier('../controller/panierController.php?action=ajout&l=<?php echo $_SESSION['desiProd']; ?>&q=1&p=<?php echo $_SESSION['prix'] ?>&g=<?php echo $_SESSION['grammage'] ?>&t=<?php echo $typeProduit->getDesignation() ?>&ta=<?php echo $_SESSION['choixTaille'] ?>&c=<?php echo $_SESSION['choixCouleur'] ?>&perso=Oui&personne=<?php echo $typeProduit->getCategoriePersonne() ?>&idProd=<?php echo $_SESSION['idProd'] ?>&motif=<?php echo $_SESSION['motif'] ?>&apercu=<?php echo $_SESSION['apercu'] ?>','panier');">
                        <button  class="btn btn-default">Valider et ajouter au panier</button><br /><br />
                    </a>
    Ce lien me permet de lancer une fonction "captureecran()". Lorsque celle ci est lancée, deux variables de session sont créée. Ensuite, j'utilise le href="javascript:ajax_panier()", pour lancer la fonction javascript ajax_panier. Celle ci utilise les variables de session qui viennent d'être créée dans la fonction captureecran().
    Cependant, ma fonction ajax_panier ne fonctionne jamais du premier coup car les variables de session créée dans la fonction captureecran() n'existent pas encore. Si je clique deux fois sur ce lien, alors la fonction fonctionne, parce que les variables de session ont été créée la premiere fois. J'ai donc l'impression que ma fonction ajax_panier() s'éxecute AVANT ma fonction captureecran(). Comment faire en sorte que ce ne soit pas le cas ?

    Merci

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 43
    Par défaut Apres reflexion
    Bonjour,

    Après reflexion, je me suis rendu compte que ce n'était pas un problème d'ordre d’exécutions, mais le problème est que le lien (l'adresse du href) est générée lorsque la page est chargée. Il est donc normal qu'au chargement, il ne trouve pas les variable de session (puisque qu'elles sont créée au clic). Du coup, je ne sais vraiment pas comment faire.

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour,
    J'ai donc l'impression que ma fonction ajax_panier() s'éxecute AVANT ma fonction captureecran().
    Non le onclick s'effectue puis l'action par défaut, le HREF, se réalise si elle n'a pas était bloquée par le onclick.

    C'est la logique que tu dois revoir et pourquoi utiliser une balise <a> quand tu as une balise <button> à ta disposition qui est faite pour exécuter du javascript ?

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 43
    Par défaut re
    Bonjour, tout d'abord merci d'avoir repondu.

    Aucunes idees. J'ai commencé comme ca et puis j'ai eu l'habitude. Et puis grave a cela je beneficie du "href" qui n'est pas disponible avec une balise "button" si je ne me trompe pas...

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    je beneficie du "href" qui n'est pas disponible avec une balise "button"...
    certes mais cela te sert à quoi !?!

    Si je résumes ce que tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function fctButton(){
      captureecran();
      alert('ajouté au panier avec succès');
      window.location.href='../index.php';
      ajax_panier('../controller/panierController.php?action=ajout&l=<?php echo $_SESSION['desiProd']; ?>&q=1&p=<?php echo $_SESSION['prix'] ?>&g=<?php echo $_SESSION['grammage'] ?>&t=<?php echo $typeProduit->getDesignation() ?>&ta=<?php echo $_SESSION['choixTaille'] ?>&c=<?php echo $_SESSION['choixCouleur'] ?>&perso=Oui&personne=<?php echo $typeProduit->getCategoriePersonne() ?>&idProd=<?php echo $_SESSION['idProd'] ?>&motif=<?php echo $_SESSION['motif'] ?>&apercu=<?php echo $_SESSION['apercu'] ?>','panier');">
    }
    l'appel pourrait ce fait comme suit
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <button class="btn btn-default" onclick="fctButton();">Valider et ajouter au panier</button>
    On peux se demander également ce que viens faire window.location.href='../index.php'; dans la succession de tes opérations ?

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 43
    Par défaut re
    En fait, il fallait que j'appelle ma fonction "captureecran" avant d'appeler la fonction ajax_panier. La fonction ajax panier admet un argument qui est le lien ou seront traitées mes données. Dans ce lien, je passe des variables GET. J'utilise le php pour les passer.
    J'ai donc penser qu'il serait plus simple de mettre cette fonction dans le href afin d'avoir acces pluus facilement au php. Cependant apres reflexion... c'est vrai que cela ne change pas tellement la maniere d'y acceder.
    Cependant mon soucis n'est pas réglé car ma fonction "captureecran" est une fonction ajax qui effectue un traitement et cree des variables de session dont j'ai besoin dans ma fonction ajax_panier, elles ne sont donc pas créée lors du chargement de la page, et donc du lien que l'on passe en argument de la fonction ajax_panier...

    Je sais que cela est compliqué a expliquer, mais si voous ne comprenez pas n'hesitez pas a le dire !


    En ce qui concerne le "document.location" je l'utilise car le href etait deja utilisé pour la fonction ajax_panier()

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

Discussions similaires

  1. [Débutant]Comment exécuter une fonction tous les jours
    Par pseudomh dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 21/06/2006, 16h10
  2. Réponses: 5
    Dernier message: 28/04/2006, 14h40
  3. exécution de fonction
    Par MANU_2 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 19/09/2005, 16h50
  4. Est-il possible d'exécuter une fonction à partir de fichier
    Par magic8392 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 16/09/2005, 13h59
  5. [VB.NET] Exécuter une fonction VB sur un Datagrid
    Par MiJack dans le forum Windows Forms
    Réponses: 3
    Dernier message: 24/09/2004, 14h45

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