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] Appliquer un style au résultat de Ajax


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 652
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 652
    Billets dans le blog
    6
    Par défaut [AJAX] Appliquer un style au résultat de Ajax
    Bonjour,

    Je fais un site web qui contient des DIV, et je souhaite modifier dynamiquement le contenu de ces DIV.

    Pour cela, j'utilise un objet XHR de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	xhr.onreadystatechange = function()
    	{
    		if (xhr.readyState == 4)
    		{
    			if(xhr.status  == 200)
    			{
    				var reponse = xhr.responseText;
    				document.getElementById(destination).innerHTML = reponse;
    			}
    		}
    	};
    Ce code fonctionne très bien, à un détail près : le style de ma page n'est pas appliqué entièrement au résultat quand je spécifie la classe que je souhaite utiliser pour mon objet.

    Comment puis-je faire pour que ce que j'injecte dans mes DIV utilise le même style que ma page principale, et ainsi pouvoir utiliser les même "class" ?

    J'ai essayé en rajoutant une en-tête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <html>
    <head>
    <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
    </head>
    <body>
    à mon résultat Ajax, mais ça ne change rien...

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 360
    Par défaut
    Bonjour,

    D'où vient le contenu que tu injectes dans tes DIV, d'une Base de données ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 81
    Par défaut
    Est-tu sur que même sans AJAX le résultat s'affiche bien avec le bon style partout ?

    Parce que tu dis "le style de ma page n'est pas appliqué entièrement au résultat", je comprends de cette phrase qu'une partie du résultat de ta requête AJAX a bine le style appliqué, et l'autre non ...

    Donc vérifie bien en version statique, que si tu met dans ta div "destination" le contenu qu'il est censé y avoir (sans ajax ), que cela fonctionne bien, car le style est censé s'appliquer au résultat si le css est ok

  4. #4
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 652
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 652
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    J'ai une classe "je-suis-un-bouton", qui permet de transformer (en quelque sorte) un lien "<a..." en style "bouton".

    J'ai le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <html>
    [...] (tout ce qu'il faut pour inclure mon CSS)
    <body>
    <div id="resultat"><a class="je-suis-un-bouton" href="">Click me</a></div>
     
    [...]
    </body>
    </html>
    Quand j'affiche cette page, mon lien a bien la tête d'un bouton.

    Si, à l'aide d'ajax, je mets dans le div "resultat" le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a class="je-suis-un-bouton" href="">Click me</a>
    avec par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById("resultat").innerHTML = '<a class="je-suis-un-bouton" href="">Click me</a>';
    (ce qui est sensé être la même chose) mon lien ressemblera à un lien normal, et pas à un bouton.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Par défaut
    D'habitude quand un style ne s'applique pas à un élément HTML par un code (JavaScript, Jquery etc ...), soit c'est dû au faite que :
    • La feuille de style n'est pas chargée !
    • L'id de l'élément HTML sur le quel on souhaite appliquer le style n'est pas correcte !


    Pour le test, je te conseil de déclarer le style que tu souhaite appliquer directement dans ta page HTML !

    Bon courage

  6. #6
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 652
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 652
    Billets dans le blog
    6
    Par défaut
    Message déplacé.

    J’espère avoir plus de réponses dans cette partie du forum

Discussions similaires

  1. [AJAX] Perte des styles dans IE
    Par keulu dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/01/2008, 09h11
  2. [AJAX] La propriété style ne marche pas avec Ajax
    Par skyangel20 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/10/2007, 13h56
  3. [AJAX] Gérer plusieurs pages de résultats d'une requête
    Par dubitoph dans le forum Général JavaScript
    Réponses: 34
    Dernier message: 25/07/2007, 15h08
  4. [AJAX] Résultat avec Ajax
    Par incao dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 13/05/2006, 22h14

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