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 :

Lier 2 fonctions javascripts


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 14
    Par défaut Lier 2 fonctions javascripts
    Bonjour à tous,

    Voila mon pb, j'utilise 2 fonctions javascript pour faire des injections dans ma base.

    Voici le code :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    function likeNew(id, id2, id3, id4, id5, id6)
    		{
    		getXhr()
    		xhr.onreadystatechange = function()
    			{
                           if(xhr.readyState == 1){
                           document.getElementById(id, id2, id3, id4, id5, id6).className = 'action-likeNew-load';
                           document.getElementById(id, id2, id3, id4, id5, id6).onclick = '';
                            }
                            if(xhr.readyState == 4 && xhr.status == 200)
    			 {
                             document.getElementById(id, id2, id3, id4, id5, id6).className = 'action-likeNew-ok nocursor';
                             document.getElementById(id, id2, id3, id4, id5, id6).onclick = '';
    			 }
    			}
    		xhr.open("GET","../inc/addthis.php5?EAN="+id2+"&ASIN="+id3+"&IdTRack="+id4+"&type="+id5+"&action="+id6+"",true);
                    xhr.send(null);
    }
     
     
     
     
    function stoplikeNew(id, id2, id3, id4, id5, id6)
    		{
    		getXhr()
    		xhr.onreadystatechange = function()
    			{
                           if(xhr.readyState == 1){
                           document.getElementById(id, id2, id3, id4, id5, id6).className = 'action-likeNew-load';
                           document.getElementById(id, id2, id3, id4, id5, id6).onclick = '';
                            }
    			 if(xhr.readyState == 4 && xhr.status == 200)
    			 {
                             document.getElementById(id, id2, id3, id4, id5, id6).className = 'action-likeNew nocursor';
                             document.getElementById(id, id2, id3, id4, id5, id6).onclick = '';
    			 }
    			}
    		xhr.open("GET","../inc/addthis.php5?EAN="+id2+"&ASIN="+id3+"&IdTRack="+id4+"&type="+id5+"&action="+id6+"",true);
                    xhr.send(null);
    }
    Mon code HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div id="stoplikeNew3760068970819" onclick="stoplikeNew('stoplikeNew3760068970819', '3760068970819', 'B002UQ9UFS', ' ', '1', 'stoplike')" class="action-likeNew-ok">Je n'aime plus</div>
     
    <div id="likeNew3760068970819" onclick="likeNew('likeNew3760068970819', '3760068970819', 'B002UQ9UFS', ' ', '1', 'like')" class="action-likeNew-ok">J'aime</div>
    Ce que j'aimerai faire c'est que lorsqu'un membre clique sur j'aime, la fonction stoplikeNew remplace la fonction likeNew, comme ça, il peut directement avoir accès au "Je n'aime pas".

    Avez vous une idée ?

    Merci

  2. #2
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Attention

    La fonction getElementById ne prend qu'un seul paramètre. Le moteur JS ne soulève pas d'erreur si tu fournis plus de paramètres qu'attendu, comme pour toute autre fonction, mais ne crois pas récupérer la liste, seulement le premier...

    Tiens autre chose : ta fonction getXhr() réinitialise un objet XMLHTTPRequest global, c'est bien ça ? (attention aux "collisions" si plusieurs appels ajax sont trop rapprochés (>>> le cliqueur fou ))

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 14
    Par défaut
    Du coup il faut que j'utilise quoi plutôt que getElementById ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 31
    Par défaut
    Une petite boucle ?
    1) stocker tes éléments dans un tableau. (tu peux créer une fonction qui le fait).
    2) Parcourir ton tableau et appliquer ton "document.getElementByid"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    	<div id="d1"></div>
    	<div id="d2"></div>
    	<div id="d3"></div>
    	<div id="d4"></div>
    	<div id="d5"></div>
     
    	<script type="text/javascript">
    		var tab = new Array("d1","d2","d3","d4","d5");
    		for(i=1; i<=tab.length; i++){
    			$constructionID = "d"+i;
    			document.getElementById(constructionID).className = "";
    		}
     
    	</script>

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonsoir,
    cela me rappelles quelque chose
    Citation Envoyé par NoSmoking Voir le message
    Bonsoir,
    la méthode getElementById n'admet qu'un seul paramètre et non une multitude, tu sera donc obligé de faire une boucle
    exemple :
    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
    <html>
    <head>
    </head>
    <body>
    <div id="id1"></div>
    <div id="id2"></div>
    <div id="id3"></div>
    <script type="text/javascript">
    function afficheText(){
      var i, oElem;
      for( i = 0; i < arguments.length; i++){
        oElem = document.getElementById( arguments[i]);
        oElem.innerHTML = arguments[i];
      }
    }
    afficheText ('id1', 'id2', 'id3');
    </script>
    </body>
    </html>

Discussions similaires

  1. Appel de fonction javascript
    Par lepierre dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/11/2004, 14h28
  2. Réponses: 5
    Dernier message: 13/08/2004, 15h40
  3. Réponses: 4
    Dernier message: 02/06/2004, 16h35
  4. Réponses: 11
    Dernier message: 10/05/2004, 10h49
  5. appel xmlservice via fonction javascript
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 06/05/2003, 14h24

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