Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/06/2011, 12h13   #1
Invité de passage
 
Inscription : juin 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 3
Points : 0
Points : 0
Par défaut Ajax et multifonctions

Bonjour,

Je suis actuellement en réalisation d'un projet qui arrive à terme .
Je vous pose le décor, c'est un panier "interactif". Il y a un gros formulaire ou l'utilisateur peut cocher différents produits, sachant qu'a chaque clique sur un bouton radio, checkbox, il y a des appel Ajax faisant appel au fonction me permettant d'actualiser le panier et bien sur de le remplir .
Mon problème est le suivant : Certains clic sur les radio bouton ne sont que partiellement prix en compte, j'entends par la que sur mes 3 ou 4 fonctions js présentent sur mon onclick seulement 1,2 voir 0 ne sont prix en compte et sont exécute. Le problème n'est pas ciblé sur un bouton et n'arrive pas tout le temps. Je me disais que cela pourrait venir du fait que parfois 4 fonctions js sont appelé sur le même bouton et que ça pourrait être lourd.
Bref je ne sait pas du tout pourquoi cela fait ça.

Merci de vos réponses

Un exemple d'un de mes boutons :

Code :
1
2
 
<input type="radio" id="adhesionIndividuel" name="adhesion" value="individuel" onClick="masquageRadio(\'adhesionBienfaiteur\',\'montantBienfaiteur\',\'0\');GereControle0(\'adhesionIndividuel\', \'tarifNormalRevuesOM\', \'tarifMembreRevuesOM\', \'tarifNormalRevuesOrni\', \'tarifMembreRevuesOrni\', \'1\');supprimerCotisations();ajoutPanierIndividuel();"/>
Skape est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 12h38   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 803
Points : 35 803
Citation:
Je me disais que cela pourrait venir du fait que parfois 4 fonctions js sont appelé sur le même bouton et que ça pourrait être lourd.
Non, il y a peu de chances que ce soit dû à ça...
Malheureusement, la cause de ton problème vient d'éléments que tu ne nous donnes pas... en particulier, les codes de tes fonctions et les portion HTML en rapport.
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 14h40   #3
Invité de passage
 
Inscription : juin 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 3
Points : 0
Points : 0
Bonjour, et merci de votre réponse.
Alors mon code est vraiment conséquent donc je ne me vois pas le poster entièrement ici mais je peux poster les fonctions js associé au input du dessus.
Code :
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
 
function getXhr(){
                                var xhr = null; 
				if(window.XMLHttpRequest) // Firefox et autres
				   xhr = new XMLHttpRequest(); 
				else if(window.ActiveXObject){ // Internet Explorer 
				   try {
			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
			            } catch (e) {
			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
			            }
				}
				else { // XMLHttpRequest non supporté par le navigateur 
				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
				   xhr = false; 
				} 
                                return xhr
			}
 
/**
			* Méthode permettant la suppression des précedentes cotisations en cas de changement de séléction
			*/
			function supprimerCotisations(){
				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){
						actualiserPanier();
					}
 
				}
				xhr.open("GET","suppression_panier.php?supprimerCotisation=ok",true);
				xhr.send(null);
			}
(les autres fonctions sont à quelques points près identiques)
Autre supposition, certaines de mes fonctions sont déclaré avant le Doctype et tout le HTML et les autres sont entre les balîses HEAD. Cela pourrait il venir d'un mauvais emplacement des déclarations de mes fonctions js ?
Skape est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 15h41   #4
Membre éclairé
 
Avatar de brachior
 
Homme Jérôme Pilliet
Étudiant
Inscription : mai 2011
Messages : 190
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Pilliet
Âge : 25
Localisation : France, Seine et Marne (Île de France)

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

Informations forums :
Inscription : mai 2011
Messages : 190
Points : 305
Points : 305
Euh ...
Le premier code que tu fournis,
C'est normal les déspécialisation ?
Parce que là pour moi, c'est une erreur de syntaxe

Et je sais pas si c'est faisable dans ton cas,
Mais pourquoi tu ne fais pas un appel plus lisible style :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<input type="radio" id="adhesionIndividuel" name="adhesion" value="individuel" onClick="doIt();"/>
 
function doIt()
{
  masquageRadio('adhesionBienfaiteur','montantBienfaiteur','0');
  GereControle0(
    'adhesionIndividuel', 'tarifNormalRevuesOM', 'tarifMembreRevuesOM',\\
    'tarifNormalRevuesOrni', 'tarifMembreRevuesOrni', '1'\\
  );
  supprimerCotisations();
  ajoutPanierIndividuel();
}
brachior est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 11h30   #5
Invité de passage
 
Inscription : juin 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 3
Points : 0
Points : 0
Bonjour,
Et merci de ta réponse Brachior.
J'ai essayé de rendre mon code plus lisible et plus clair, cela n'a rien changé sur mon problème.

Pour les déspécialisation je les ai retiré (l'habitude de les mettre en js...)

Mais le problème persiste ...
Skape est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 11h52   #6
Membre éclairé
 
Avatar de brachior
 
Homme Jérôme Pilliet
Étudiant
Inscription : mai 2011
Messages : 190
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Pilliet
Âge : 25
Localisation : France, Seine et Marne (Île de France)

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

Informations forums :
Inscription : mai 2011
Messages : 190
Points : 305
Points : 305
Là comme ça je vois pas bien,
Tes fonctions semblent correctes Oo
Tu as regardé ce que te dit la console d'erreur ?
Et essayé de la passer au débuggeur ?

Je sais qu'à une époque j'avais des problèmes avec l'ordre des appels AJAX (faire le open avant ou après le send et compagnie)
J'ai souvenir de belles prises de tête ^^

Maintenant je laisse ça à JQuery ^^
(C'est plus clair et plus rapide je trouve ^^)
brachior est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h52.


 
 
 
 
Partenaires

Hébergement Web