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

AJAX Discussion :

[AJAX] Actualisation d'une DIV


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 16
    Par défaut [AJAX] Actualisation d'une DIV
    Salut les professionnels
    Alors voila je suis en train de développer un tableau de bord avec un affichage de donner sur une même page. C'est donné peuvent être trié par statues grâce à une liste déroulante utilisant AJAX. Ce que j'aimerai faire c'est que la DIV contenant le tableau de données soit actualisé toutes les 5 minutes mais en gardant le paramètre choisi dans la liste déroulante.

    Donc voila un extrait simplifier du code :

    Index.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
    25
    26
    27
    28
    29
    30
     
    <!-- Ici une liste déroulante permettant de définir un critère de tri -->
    <div id="bandeau">
    	<table width=100%>	
    		<TR>
    			<td width=33%>
    				<form name="Classement" method="POST" >
    					<fieldset>
    					Choisir un type de classement :
    					<select name="Lst_Classement" id="Lst_Classement" onchange="envoyerRequeteListeGet('Get_Tableau.php', this.value, 'tableau')" >
    						<option value='-1'>Closed exclu</option>
    						<option value='1'>Seulement New</option>
    						<option value='2'>Seulement Inprog</option>
    						<option value='3'>Seulement resolved</option>
    						<option value='4'>Seulement Closed</option>
    					</select>
    				        </fieldset>
    			        </form>
    		        </td>
    		        <td width=33%>
    			        <img id="dcns" src="DCNS.jpg" HEIGHT="50px" />
    		        </td>
    		        <td>
    		        </td>
    	                </tr>
                </table>
    </div>
    <div id="tableau">
    <!-- Ici est afficher le tableau avec les données -->
    </div>
    Get_Tableau.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <!-- Requête avec if en fonction du tri le tout mis dans un tableau
    FunctionAjax.js
    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
     
      function getreqHttp() 
            { 
                    var reqHttp = null ; 
                    if(window.XMLHttpRequest) 
                    { 
                            // pour Firefox (Mozilla) et autres 
                               reqHttp = new XMLHttpRequest();                                 
                    } 
                    else 
                    { 
                            if(window.ActiveXObject) 
                            { 
                                    //  pour Internet Explorer 
                                       try 
                                    { 
                                            reqHttp = new ActiveXObject("Msxml2.XMLHTTP"); 
                                    } 
                                    catch (e) 
                                    { 
                                            reqHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
                                    } 
                            } 
                            else 
                            { 
                                    // XMLHttpRequest non supporté par le navigateur 
                                      alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
                                reqHttp = false; 
                            } 
                    } 
            return reqHttp; 
            }         
     
     
            // pour la methode POST 
            function envoyerRequeteListePost(url , Classement, CodeId ) 
            { 
                    //  récupération d'un objet XMLHttpRequest 
                    var reqHttp = getreqHttp() ;                         
                    if ( reqHttp == null) 
                    {                         
                            alert("Impossible d'utiliser Ajax sur ce navigateur"); 
                    } 
                    else 
                    {                                         
                            // appel d'une fonction anonyme (définie à la volée) 
                            reqHttp.onreadystatechange = function() 
                            {        // tester si tout s'est bien passé 
                            if (reqHttp.readyState == 4 && reqHttp.status == 200) 
                                    {        // tout est ok 
                                            //  le résultat est récupéré via la propriété responseText                                         
                                            LesLivres = document.getElementById(CodeId); 
                                            LesLivres.innerHTML = reqHttp.responseText;                                         
                                     } 
                             } 
     
                             //  ouverture de la connexion avec le serveur 
                             reqHttp.open("POST", url, true) ;         
                             // obligatoire pour la méthode post 
                             reqHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
                            // recupération de l'objet correspondant à la catégorie selectionnée 
                            LesClassements = document.getElementById(Classement); 
                            //alert (LesClassements) ; 
                            CodeClassement = LesClassements.options[LesClassements.selectedIndex].value; 
                             //  envoi de la requête 
                            reqHttp.send("CodeClassement=" + CodeClassement);         
                            //alert(CodeClassement) ; 
                    } 
                    return ; 
            } 
     
            // pour la méthode GET         
            function envoyerRequeteListeGet(url, idClassement, CodeId) 
            { 
                     //alert(idClassement + CodeId) ; 
                    //  récupération d'un objet XMLHttpRequest 
                    var reqHttp = getreqHttp() ;                         
                    if ( reqHttp == null) 
                    {                         
                            alert("Impossible d'utiliser Ajax sur ce navigateur"); 
                    } 
                    else 
                    {                                                                 
                            // appel d'une fonction anonyme (définie à la volée) 
                            reqHttp.onreadystatechange = function() 
                            { 
                                    // tester si tout s'est bien passé 
                                       if (reqHttp.readyState == 4 && reqHttp.status == 200) 
                                    { 
                                            // la requête s'est correctement déroulée 
                                            //  le résultat est récupéré via la propriété responseText 
                                            LesPdt = document.getElementById(CodeId) ; 
                                            LesPdt.innerHTML= reqHttp.responseText;                                                                         
                                     }                                                                                                   
                            } 
     
                            //  ouverture de la connexion avec le serveur - méthode GET - asynchrone 
                            // escape permet de s'affranchir des problèmes liés aux caractères spéciaux 
                            //alert(idClassement) ; 
                            reqHttp.open("GET",url + "?CodeClassement=" + escape(idClassement), true); 
                            //  envoi de la requête 
                            reqHttp.send(null); 
                    } 
                    return ;
    Voila si quelqu'un pouvais m'aidée parce que je galère un peu en JavaScript !
    Merci d'avance pour l'aide

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour,
    Ce que j'aimerai faire c'est que la DIV contenant le tableau de données soit actualisé toutes les 5 minutes mais en gardant le paramètre choisi dans la liste déroulante.
    il te suffit de relancer la fonction via un setTimeout et prenant soin de récupérer les bonnes données au sein de la fonction et non plus en passage de paramètres.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 16
    Par défaut
    Bonjour alors c'est bon résolu avec la fonction suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function executeListeGet(){
        envoyerRequeteListeGet('Get_Tableau.php', document.GetElementById('"Lst_Classement').value, 'tableau');
        setTimeout("executeListeGet()",300000);
    }

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Ce serait plus propre avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout(executeListeGet,300000);
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, 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
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 16
    Par défaut
    Effectivement merci

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

Discussions similaires

  1. Ajax, Wordpress actualisation d'une div
    Par Etann38 dans le forum AJAX
    Réponses: 3
    Dernier message: 26/01/2018, 22h48
  2. Réponses: 0
    Dernier message: 26/11/2011, 15h16
  3. [AJAX] Actualisation d'une DIV
    Par carter15_2001 dans le forum AJAX
    Réponses: 10
    Dernier message: 19/02/2010, 14h31
  4. [AJAX] auto actualisation d'une div
    Par you.baddi dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 28/06/2008, 12h48
  5. [AJAX] Actualisation d'une page par AJAX
    Par jack_1981 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/06/2006, 13h07

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