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] Plusieurs xhr dans un script ?


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �m�rite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par d�faut [AJAX] Plusieurs xhr dans un script ?
    Bonjour,

    J'aimerais utiliser un objet xhr � deux endroits diff�rents de ma page html..
    Le premier pour remplir automatiquement et en direct un input readonly,
    le second pour remplir une liste d�roulante li�e � une premi�re..

    Au d�but, j'avais juste le second et �a marchait bien.. mais �a s'est g�t� lorsque j'ajoute le premier. En fait je ne sais pas si je peux cr�er deux objets XHR, ou si je dois utiliser le m�me, sachant qu'un de mes select.onChange lancera les deux fontions utilisant le ou les xhr..

    Voil� le code mon script :
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    //_____________________________________________________________________________________
    //Gestion de l'objet XmlHttpRequest
    function getXhr(){
    	var xhr = null;
    	if(window.XMLHttpRequest) // Firefox et autres
    		xhr = new XMLHttpRequest();
    	else if(window.ActiveXObject){ // Internet Explorer
    		try {
    		//celui-ci marche..
    		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;
    }
    //_____________________________________________________________________________________
    //Sert pour l'auto-compl�tion du select du v�hicule
    /*
    * M�thode qui sera appel�e sur le click du bouton
    */
    function load_veh(){
    	var xhr = getXhr();
    	// On d�finit 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){
    		leselect = xhr.responseText;
    		// On se sert de innerHTML pour rajouter les options a la liste
    		document.getElementById('vehic2').innerHTML = leselect;
    		}
    	}
    	alert("ici c bon");
    	// Ici on va voir comment faire du post
    	xhr.open("POST","ajaxVeh.php",false);
    	// ne pas oublier �a pour le post
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	// ne pas oublier de poster les arguments
    	// ici, l'id de l'auteur
    	sel = document.getElementById('vehic1');
    	idVehic1 = sel.options[sel.selectedIndex].value;
    	xhr.send("idVehic1="+idVehic1);
    }
    //_____________________________________________________________________________________
    
    //_____________________________________________________________________________________
    //Fonction de g�n�ration automatique de l'identifiant de la DT
    function identif()
    {
    	alert("ici aussi");
    	var xhr = getXhr();
    	// On d�finit 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){
    		leinput = xhr.responseText;
    		// On se sert de innerHTML pour rajouter les options a la liste
    		document.getElementById('identif').innerHTML = leinput;
    		}
    	}
    	//On r�cup�re le contr�le input de l'identificateur
    	sol = document.getElementById('identif');
    	var texto;
    	//On r�cup�re l'imputation
    	part1 = document.getElementById('imput');
    	txtpart1 = part1.value;
    	alert(txtpart1);
    	//Pareil pour le v�hicule et et sa vague
    	part2 = document.getElementById('vehic1');
    	if (part2.value == "-1")
    		txtpart2 = "";
    	else txtpart2 = part2.value;
    	part3 = document.getElementById('vehic2');
    	if (part3.value == "-1")
    		txtpart3 = "";
    	else txtpart3 = part3.value;
    	
    	val[] = (txtpart1,txtpart2,txtpart3);
    	
    	alert(val[0]." | ".val[1]." | ".val[2];
    	
    	// Ici on va voir comment faire du post
    	xhr.open("POST","ajaxIdt.php",false);
    	// ne pas oublier �a pour le post
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	// ne pas oublier de poster les arguments
    					
    	xhr.send(val);
    }
    Ici je n'utilise qu'une seule instance d'xhr..
    Aucun de mes tests alert ne s'ex�cute, comme si les fonctions n'�taient pas actives..

  2. #2
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Bonjour,
    si tu les utilises "en m�me temps" (ou s'ils risquent de se "chevaucher" : le 2� d�marre avant la fin du 1�), il faut en cr�er 2.
    Si tu n'es pas s�r de la chronologie, fais en 2.

    A+

  3. #3
    Membre �m�rite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par d�faut
    J'en fais 2 : j'ai copi� la fonction getXhr(), soit getXhr1().. mais �a ne marche toujours pas.. j'ai remis les xhr en asynchrone et toujours rien..

    Voici le nouveau code du script :
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    //__________________________________________________________________
    //Gestion de l'objet XmlHttpRequest
    function getXhr(){
    	alert("xhr0");
    	var xhr = null;
    	if(window.XMLHttpRequest) // Firefox et autres
    		xhr = new XMLHttpRequest();
    	else if(window.ActiveXObject){ // Internet Explorer
    		try {
    		//celui-ci marche..
    		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;
    	}
    	alert("xhr0 fini");
    	return xhr;
    }
    //________________________________________________________________
    //Sert pour l'auto-compl�tion du select du v�hicule
    /*
    * M�thode qui sera appel�e sur le click du bouton
    */
    function load_veh(){
    	var xhr = getXhr();
    	// On d�finit 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){
    		leselect = xhr.responseText;
    		// On se sert de innerHTML pour rajouter les options a la liste
    		document.getElementById('vehic2').innerHTML = leselect;
    		}
    	}
    	alert("ici c bon");
    	// Ici on va voir comment faire du post
    	xhr.open("POST","ajaxVeh.php",true);
    	// ne pas oublier �a pour le post
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	// ne pas oublier de poster les arguments
    	// ici, l'id de l'auteur
    	sel = document.getElementById('vehic1');
    	idVehic1 = sel.options[sel.selectedIndex].value;
    	xhr.send("idVehic1="+idVehic1);
    }
    //________________________________________________________________
    //________________________________________________________________
    //Gestion du 2� objet XmlHttpRequest
    function getXhr1(){
    	alert=("xhr1");
    	var xhr = null;
    	if(window.XMLHttpRequest) // Firefox et autres
    		xhr = new XMLHttpRequest();
    	else if(window.ActiveXObject){ // Internet Explorer
    		try {
    		//celui-ci marche..
    		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;
    	}
    	alert("xhr1 fini");
    	return xhr;
    }
    //________________________________________________________________
    //Fonction de g�n�ration automatique de l'identifiant de la DT
    function identif()
    {
    	alert("ici aussi");
    	var xhr = getXhr1();
    	// On d�finit 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){
    		leinput = xhr.responseText;
    		// On se sert de innerHTML pour rajouter les options a la liste
    		document.getElementById('identifix').innerHTML = leinput;
    		}
    	}
    	//On r�cup�re le contr�le input de l'identificateur
    	//sol = document.getElementById('identifix');
    	var texto;
    	//On r�cup�re l'imputation
    	part1 = document.getElementById('imput');
    	txtpart1 = part1.value;
    	alert(txtpart1);
    	//Pareil pour le v�hicule et et sa vague
    	part2 = document.getElementById('vehic1');
    	if (part2.value == "-1")
    		txtpart2 = "";
    	else txtpart2 = part2.value;
    	part3 = document.getElementById('vehic2');
    	if (part3.value == "-1")
    		txtpart3 = "";
    	else txtpart3 = part3.value;
    	
    	val[] = (txtpart1,txtpart2,txtpart3);
    	
    	alert(val[0]." | ".val[1]." | ".val[2];
    	
    	// Ici on va voir comment faire du post
    	xhr.open("POST","ajaxIdt.php",true);
    	// ne pas oublier �a pour le post
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	// ne pas oublier de poster les arguments
    					
    	xhr.send(val);
    }	
    //________________________________________________________________
    Aucun de mes alert ne s'ex�cute..

    Voici les deux appels de mes fonctions :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <select type="text" name="imput" size="1" id="imput" onChange="identif()">
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <select name="veh" type="text" size="1" onChange="load_veh()<!--,identif()-->" id="vehic1">

  4. #4
    Membre �m�rite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par d�faut
    J'ai r�solu mon pb. Ma syntaxe JScript souffrait de graves erreurs !! (d�claration de tableau notamment et qques erreurs en plus)

    Par contre j'ai une autre question :

    J'aimerai passer 3 valeurs avec le xhr.send(), en POST � un fichier php..

    est-ce correct ?
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    val = new Array(txtpart1,txtpart2,txtpart3);
    // Ici on va voir comment faire du post
    xhr1.open("POST","ajaxIdt.php",true);
    // ne pas oublier �a pour le post
    xhr1.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    // ne pas oublier de poster les arguments
    xhr1.send("(p1="+val[0]+",p2="+val[1]+",p3="+val[2]+")");
    mon code php :

    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
    <?php
            Require('bdd.php');
     
            if(!empty($_POST['p1']) && !empty($_POST['p2']) && !empty($_POST['p3']))
            {
                    OpenBase();
                    $query = "SELECT num_vague FROM vehicules WHERE idveh='".$_POST['p3']."'";
                    $result = mysql_query($query);
                    
                    /*$query= "SELECT COUNT(*) FROM demtrav WHERE imputation=\"". $_POST["val"][0]."\" AND type_veh=\"". $_POST["val"][1]."\" AND idveh=\"".$_POST["val"][2]."\"";
                    $index = mysql_query($query) + 1;
                    
                    echo $index;*/
                    
                    $identix = 'DT-'.$_POST['p2'].'-'.$_POST['p3'].'-'.$result.'-';         //.$index;
                    
                    echo '<input name="identif" id="identif" type="text" size="80" maxlength="135" align="center" value=\"'.$identix.'\"readonly></input>';
                    CloseBase();
            }
            else if (!empty($_POST['p1']))
                    echo '<input name="identif" id="identif" type="text" size="80" maxlength="135" align="center" value=\"'.$_POST[val][0].'\"readonly></input>';
            
            
    ?>

  5. #5
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Pas plut�t
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    xhr1.open("POST","ajaxIdt.php?p1=xxx&p2=yyy....",true);


    A+

  6. #6
    Membre �m�rite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par d�faut
    carr�ment!

    merci!

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. mysql_fetch_assoc plusieurs fois dans un script
    Par energie13 dans le forum Langage
    R�ponses: 8
    Dernier message: 13/03/2012, 03h31
  2. Plusieurs select dans un script perl
    Par Nympheasi dans le forum SGBD
    R�ponses: 4
    Dernier message: 22/05/2009, 17h08
  3. [AJAX] Du JS dans un script charg� en AJAX ?
    Par dorian53 dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 10/04/2007, 12h18
  4. [GD] Redimension d'image - plusieurs erreurs dans mon script
    Par Henry9 dans le forum Biblioth�ques et frameworks
    R�ponses: 1
    Dernier message: 18/02/2007, 10h58
  5. [SQL] Traitement de plusieurs requ�tes .SQL dans un script PHP?
    Par M4x dans le forum PHP & Base de donn�es
    R�ponses: 5
    Dernier message: 19/03/2006, 19h59

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