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 :

script de verification d'une bdd avec ajax


Sujet :

JavaScript

  1. #1
    Invité
    Invité(e)
    Par défaut script de verification d'une bdd avec ajax
    Bien le bonsoir a tous !

    Voici un souhait que je pense non negociable mais j'expose au cas ou si vous pouvez me contre-dire :

    Lors de l'arrivee sur le script qui s'occupe de la gestion de la bdd (verification des utilisateurs, ...), j'aimerais que ceci se passe :

    (dans le html)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onLoad="go_verif();">
    (dans le javascript)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //request represente la fonction qui appelle un objet XHR avec un script et un cadre (div) -> ajax
    function go_verif() {
    setTimeout("request('request/script_verif.php?verif=1','cadre1')",1200);
    setTimeout("request('request/script_verif.php?verif=2','cadre2')",1200);
    setTimeout("request('request/script_verif.php?verif=3','cadre3')",1200);
    setTimeout("request('request/script_verif.php?verif=4','cadre4')",1200);
    }
    Lorsque je fais ceci, le seul script qui se lance reellement c'est le dernier .
    J'ai bien essaye de negocier comme je pouvais en placant des alert() entre chaque request et cette fois c'est la 2 et la 3 qui se lance ...

    De ce fait, j'ai tente une autre chose (dans la fonction request) :

    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
    function is_array(input){
    	return (typeof(input) == 'object' && (input instanceof Array));
    }
     
    function request(url,cadre) {
    	if(is_array(url) && is_array(cadre)
    	&& url.length == cadre.length) {
    		var i = 0;
    		for(i = 0; i < url.length; i++) {
    			XHR = getXHR();
    			XHR.open("GET",url[i], true);
    			XHR.onreadystatechange = function attente() {
    				if(XHR.readyState == 4) 
    					document.getElementById(cadre[i]).innerHTML = XHR.responseText;
    			}
    			XHR.send(null);
    		}
    		return;
    	}
    }
    Haha, rien du tout !

    Donc ma question reste comment negocier ce que je souhaite c'est-a-dire les etapes de verifications qui se lancent les unes apres les autres sans que personne ne touche a rien.

    J'espere avoir ete assez explicite et attend vos suggestions .

    @+.
    Dernière modification par Jumano ; 02/12/2008 à 22h19. Motif: Merci d'utiliser les balises [CODE] (bouton #)

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    bizarre ces 4 appels à une même adresse avec juste un paramètre incrémenté; tu dois pouvoir faire plus simple non?

    1) les paramètres correspondent à quoi? (dans le html, dans la db)
    2) pourquoi veux-tu les évaluer les uns après les autres et dans cet ordre?

  3. #3
    Invité
    Invité(e)
    Par défaut
    En fait, peu importait les url appellees et les id de div nommes, le souci est que je n'arrivait a lancer 4 etapes (etapes "ajaxees") de maniere independantes.

    C'est tres moche mais j'ai une solution (vous allez avoir mal aux yeux !) :

    fonction request :
    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
     
    urls = url.split(":::::");
    	cadres = cadre.split(":::::");
     
    	XHR1 = getXHR();
    	XHR1.open("GET",urls[0], true);
    	XHR1.onreadystatechange = function attente() {
    	if(XHR1.readyState == 4) 
    		document.getElementById(cadres[0]).innerHTML = XHR1.responseText;
    	}
    	XHR1.send(null);
     
    	XHR2 = getXHR();
    	XHR2.open("GET",urls[1], true);
    	XHR2.onreadystatechange = function attente() {
    	if(XHR2.readyState == 4) 
    		document.getElementById(cadres[1]).innerHTML = XHR2.responseText;
    	}
    	XHR2.send(null);
     
    	XHR3 = getXHR();
    	XHR3.open("GET",urls[2], true);
    	XHR3.onreadystatechange = function attente() {
    	if(XHR3.readyState == 4) 
    		document.getElementById(cadres[2]).innerHTML = XHR3.responseText;
    	}
    	XHR3.send(null);
     
    	XHR4 = getXHR();
    	XHR4.open("GET",urls[3], true);
    	XHR4.onreadystatechange = function attente() {
    	if(XHR4.readyState == 4) 
    		document.getElementById(cadres[3]).innerHTML = XHR4.responseText;
    	}
    	XHR4.send(null);
     
    	return;
    Donc vous avez repere que ce n'est pas mis sous forme d'un algorithme mais je n'arrive pas a le faire car il faut (je pense obligatoirement) une entite XHR differente pour chaque appel ajax (j'ai essaye avec un tableau de XHR mais sans succes ).

    Du coup, l'appel devient (c'est monstrueux aussi) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    multi_request('request/script_verif.php?verif=1:::::request/script_verif.php?verif=2:::::request/script_verif.php?verif=3:::::request/script_verif.php?verif=4','assoc_sspj_pays:::::gestion_admin:::::assoc_fact_fiche:::::assoc_pays_taxe');
    Ce n'est pas ce que j'ai pu programme de plus beau mais en tout cas comme rustine de secours cela fonctionne bien.

    Si vous avez plus joli a proposer j'en serais ravi.

    En outre, le souci est resolu.

    @+.

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

Discussions similaires

  1. [AJAX] Insertion dans une BDD avec code Ajax/PHP
    Par cobra85 dans le forum jQuery
    Réponses: 5
    Dernier message: 17/10/2013, 21h35
  2. Réponses: 0
    Dernier message: 04/02/2011, 03h43
  3. [AJAX] Vérifier des données dans une BDD avec AJAX
    Par mwech dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 22/10/2008, 16h13
  4. Déployer une BDD avec son appli
    Par Albertolino dans le forum Décisions SGBD
    Réponses: 9
    Dernier message: 11/03/2004, 19h08

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