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] Rechargement de div


Sujet :

JavaScript

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 291
    Points : 217
    Points
    217
    Par défaut [AJAX] Rechargement de div
    Bonjour,
    Comme je débute toujours en ajax, j'aurai encore une question... :
    Comment faire pour recharger un div a partir d'un choix dans une liste déroulante? Je sais récupérer le choix fait par l'utilisateur mais c'est la ptite fonction du onchange qu'il me manque...
    Il doit surement exister un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    reload(document.getElementbyID(div));
    Mais je ne l'ai pas trouvé dans mes recherches.

    Merci de votre aide!

  2. #2
    Membre expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Points : 3 189
    Points
    3 189
    Par défaut
    ce tuto est tres claire sur les listes déroulantes liées

    j'pense qu'avec ca t udevrais reussir non? si t'as des questions...

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    Salut,

    tu peux utiliser INNERHTML

    Pour rechercher ta div, tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById(id de la div).innerHTML = ce que tu veux y mettre

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 291
    Points : 217
    Points
    217
    Par défaut
    Coucou, merci pour la doc!
    Bon alors je l'ai épluché et voila ou j'en suis : losqu'on change la sélection dans la liste déroulante ça charge bien ma fonction javascript du onchange. Sauf que ça reste bloqué sur "chargement en cours" dans le div que je veux recharger.Elle n'arrive donc pas à recuperer les données je suppose.

    Voici mes codes :

    principal.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
     
    <div id="poleSouhaite">
    				<form name="choixProcess" method="post" >								
    						 <select name='Choixprocess' id='Choixprocess' tabindex='1' onChange="ajaxMajTab(this.value);">
    							 <option value="vide">- - - Choisissez un process - - -</option>
    							 <?php
                                                             selectProcess(); ?>
     
    						</select>
    				</form>							 
     
    			</div>
     
    				<div id="tabHoraires">
    					/* On récupère l'identifiant du process choisi. */
    $idProcess = isset($_GET['idProcess']) ? $_GET['idProcess'] : false; 
     
    /* Si on a un process, on procède à la requête */
    if(false !== $idProcess)
    {
    		//Code qui fonctionne
    }
    else
    {	
              //blabla
    }	
    			?>
     
    		</table>	
    				</div>
    Code javascript :
    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
     
    function ajaxMajTab(idProcess)
    {
    	if(idProcess == 'vide')
        {
            //document.getElementById('blocPole').innerHTML = '';
        }
        else
        {
            /* À cet endroit précis, on peut faire apparaître un message d'attente */
            var tableau = document.getElementById('tabHoraires');
            tableau.innerHTML = "Traitement en cours, veuillez patienter...";
            /* On crée l'objet XHR */
            creerRequete();
            /* Définition du fichier de traitement */
            var url = 'tabHorairesEssai.php?idProcess='+ idProcess;
            /* Envoi de la requête à la page de traitement */
            requete.open('GET', url, true);
            /* On surveille le changement d'état de la requête qui va passer successivement de 1 à 4 */
            requete.onreadystatechange = function()
            {
                /* Lorsque l'état est à 4 */
                if(requete.readyState == 4)
                {
                    /* Si on a un statut à 200 */
                    if(requete.status == 200)
                    {
                        /* Mise à jour de l'affichage, on appelle la fonction apropriée */
                        actualiserTableau();
                    }
                }
            };
            requete.send(null);
        }
     
    }
     
    function actualiserTableau()
    {
    	var tabHoraire = requete.responseText;
    	var divTabHoraires = document.getElementById('tabHoraires');
    	divTabHoraires.innerHTML = tabHoraire ;
    }
    Et mon div reste donc bloqué avec ça à l'intérieur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tableau.innerHTML = "Traitement en cours, veuillez patienter...";
    Merci beaucoup !

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    Je pense que ton problème vient du fait que la variable "requete" dans ton code javascript est une variable internet à la fonction "ajaxMajTab" et donc dans la fonction "actualiserTableau()" elle est null.

    Tu devrais essayer de faire le responseText et le reste directement dans la fonction "ajaxMajTab" à la place de l'appel à "actualiserTableau()"

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 291
    Points : 217
    Points
    217
    Par défaut
    Re!
    J'ai fait ce que tu as dit mais ça n'a rien changé (ou peut etre que si mais ya toujours un problème ).
    A coup de .innerHTML je sais ou ça ne va pas : requete.status n'est jamais == à 200. Pourquoi?
    ça ça reste un mystere...

    En tout cas merci de votre aide !

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    Essai de mettre un else après le if(==200) et d'afficher (une alerter par exemple) la valeur retourné.

    Que fais-tu dans ton fichier "tabHorairesEssai" ?

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 291
    Points : 217
    Points
    217
    Par défaut
    Ah ben j'ai peut etre trouvé pourquoi!
    En fait je travaille en local et sur un forum j'ai trouvé qu'on ne pouvait atteindre status==200 donc j'ai viré la condition (oui je sais c'est un peu barbare mais bon). Alors je saisi pas totalement pourquoi mais bon ça marche quasiment bien!!

    Merci encore et bon week end.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    Bizarre, moi aussi je suis en local et j'ai la condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(xhr.readyState == 4 && xhr.status == 200)
    qui fonctionne très bien.

    Bon week-end

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

Discussions similaires

  1. [AJAX] Rafraîchissement de div
    Par pc.bertineau dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/05/2007, 09h23
  2. [AJAX] recharger un bout de page
    Par salsero1 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/05/2007, 23h36
  3. [AJAX] rafraichir une div !
    Par omantherasta dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 24/12/2006, 17h35
  4. [AJAX] Recharger un menu deroulant php sans recharger la page
    Par ns_deux dans le forum Général JavaScript
    Réponses: 25
    Dernier message: 22/07/2006, 15h59
  5. recharger une div
    Par Mike35 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 17/01/2006, 09h04

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