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

JavaScript Discussion :

[AJAX] 2 fonctions dans un onclick


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Par défaut [AJAX] 2 fonctions dans un onclick
    Salut à tous,

    Je m'explique, j'ai mis en place un système d'archivage en ajax qui me permet quand je click sur la checkbox d'un article de l'archiver puis de recharger le tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" onclick="go_article('<?php echo $donnees['id_article']; ?>','<?php echo $id_prod; ?>');reload_article('<?php echo $id_prod; ?>','1');"/>
    Je problème étant que de temps en temps, l'archivage passe mais pas le rechargement du tableau, je me demande si c'est dû au fait qu'il y ait deux fonctions dans le onclick et que la fonction de rechargement puisse être exécuter avec celle d'archivage !!

    Qu'en pensez vous ?

    PS : pour le tableau que j'ai recharger ainsi que la page faisant les requetes d'archivage, le cache est désactivé...

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 36
    Par défaut
    je dis peut être une connerie, mais pourquoi tu ne met pas ta 2eme fonction dans la 1ere à la fin ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Par défaut
    ouais j'y ai pensé à la fin de mon post, je vais tester, par contre si quelqu'un a une explication du au fait que la seconde fonction ne passe pas toujours je suis intéressé !!!

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Par défaut
    pourrais vous m'aider à mettre ces deux fonctions en une seule ??

    Fonction 1 :
    Archivage:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function go_produit(id_produit,action)
    {
       var xhr = getXhr()
       // On défini ce qu'on va faire quand on aura la réponse
       xhr.onreadystatechange = function()
       {
          // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
          if(xhr.readyState == 4 && xhr.status == 200)
          {
             xhr.responseText;
          }
       }
    	   xhr.open("GET","archivage_article.php?id_produit="+id_produit+"&action="+action,true);
       xhr.send(null);
    }
    Fonction 2 :
    Raffraichissement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function reload_prod(type)
    {
       var xhr = getXhr()
       // On défini ce qu'on va faire quand on aura la réponse
       xhr.onreadystatechange = function()
       {
          // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
          if(xhr.readyState == 4 && xhr.status == 200)
          {
             document.getElementById("mondiv").innerHTML = xhr.responseText;
          }
       }
    xhr.open("GET","tableau_produits.php?type="+type,true);
    xhr.send(null);	
    }

  5. #5
    Membre confirmé Avatar de dream_of_australia
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2007
    Messages : 167
    Par défaut
    Je suppose que ton tableau est construit à partir d'une requête de base de données. Si tu ne recharges pas la page, et c'est le cas avec Ajax, le résultat de la requête ne bouge pas donc ton tableau est le même.
    Essaie d'utiliser le DOM afin de mettre à jour directement le tableau dans ta fonction javascript (la première, après la réponse).

  6. #6
    Membre confirmé Avatar de dream_of_australia
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2007
    Messages : 167
    Par défaut
    Un petit exemple pour que ce que je t'ai dit soit plus clair. C'est une fonction qui me supprimer un produit dans la base et me supprimer la ligne du tableau correspondante, le tout avec AJAX :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    function supprimerProduit(idproduit) {
    	if (confirm ("Voulez-vous vraiment supprimer ce produit ?"))
    		action = true ;
    	else action = false ;
    	if (action == true) {
    		var xhr = getXhr();
    		xhr.onreadystatechange = function(){
    			if(xhr.readyState == 4 && xhr.status == 200) {
    				answer = xhr.responseText ;
    				alert(answer) ;
    				var noeud = document.getElementById('tr'+idproduit) ;
    				while (noeud.childNodes.length>0) {
      					noeud.removeChild(noeud.firstChild);
    				}
    			}
    		}
    		xhr.open("POST","ajax/supprimerProduit.php",true);    
    		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');     
    		xhr.send("idproduit="+idproduit);
    	}
    }
    La partie qui nous intéresse est en gras dans le code.

  7. #7
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Par défaut
    Dac, merci pour ton code, j'ai résolu le problème...

  8. #8
    Membre confirmé Avatar de dream_of_australia
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2007
    Messages : 167
    Par défaut
    Contente d'avoir pu t'aider !

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

Discussions similaires

  1. fonction dans le onclick d'un bouton
    Par da_latifa dans le forum ASP.NET
    Réponses: 8
    Dernier message: 26/10/2010, 18h38
  2. Lancer une fonction dans un onclick d'un Href
    Par Mut dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/10/2007, 13h58
  3. [PHP-JS] Fonction dans un onClick
    Par Sarrus dans le forum Langage
    Réponses: 3
    Dernier message: 23/01/2007, 12h00
  4. Réponses: 6
    Dernier message: 16/11/2005, 20h43
  5. Enchainer des fonctions dans un onclick d'un bouton
    Par jpg dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/10/2004, 16h51

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