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] Traitement des balises html


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de Mysti¢
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 155
    Points : 116
    Points
    116
    Par défaut [AJAX] Traitement des balises html
    J'ai utilisé ajax pour mettre en place une shoutbox (je débute), la div du formulaire reste statique tandis que celle du chat s'actualise sans provoquer l' actualisation de l'intégralité de la page ^^.
    Tout fonctionne parfaitement bien sauf la mise en forme de mon texte (celui du chat).
    Je m'explique...
    J'ai une page index.php qui contient le formulaire, et la page chat.php que j'appel avec ajax.
    code source 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
    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
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    <html>
    <head>
    <title>SA-Box</title>
    <style>
     <!--
     div.chat
    {
    overflow: auto;
    width: 156px;
    height: 150px;
     border: 1px #757575 solid;
     padding: 3px;
     background: #72ADFD;
    }
    div.miniform
     {
     width: 156px;
     border: 1px #757575 solid;
     border-top: 0px;
     padding: 3px;
     background: #72ADFD;
    text-align: center;
     }
     .date
     {
      color: #111111;
     font-family:Arial;
     font-size: 7pt;
     }
     .pseudo
    {
     color: #0066ff;
     font-family: Arial;
    font-size: 8pt;
     font-weight: bold;
      text-transform: capitalize;
     }
    .msg
    {
    color: #0066ff;
    font-family: Arial;
    font-size: 8pt;
    font-weight: normal;
    text-decoration: none
     }
    hr.chat
    {
     clear: both;
    width: 95%;
    border: 0; /* enleve toute bordure */
    border-bottom: #0066ff 1px solid; /* une seule bordure (sinon firefox met une bordure en haut ET en bas mais pas IE */
    height: 2px; /* pour IE */
    color: #9EC6FD;
    }
    input[type=submit]:hover, input[type=button]:hover
    {
    font-family: Arial, sans-serif;
    font-size: 8pt;
    background-color: #9EC6FD;
    border: #0066ff 1px solid;
    color: #FFFFFF;
    font-weight: bold;
    padding-left: 3px;
    padding-right:3px;
    }
     
    input[type=submit]:active, input[type=button]:active
    {
    	border-style: inset;
    }
    img
    {
    border: 0;
    }
    input {
    font-family: Arial, sans-serif;
    font-size: 8pt;
    background-color: #9EC6FD;
    border: #48515A 1px solid;
    color: #FFFFFF;
    font-weight: bold;
    padding-left: 3px;
    padding-right:3px;
    }
    textarea {
    font-family: Arial, sans-serif;
    font-size: 8pt;
    background-color: #9EC6FD;
    border: #48515A 1px solid;
    color: #0066ff;
    padding-left: 3px;
    padding-right:3px;
    }
    textarea:hover {
    font-family: Arial, sans-serif;
    font-size: 8pt;
    background-color: #9EC6FD;
    border: #0066ff 1px solid;
    color: #0066ff;
    padding-left: 3px;
    padding-right:3px;
    }
    .link ul { /* remove bullets and list indents */
    list-style: none;
    margin: 0;
    padding-left: 0px;
    }
    .link a{
    font-family: Arial, sans-serif;
    font-size: 8pt;
    color: #0066ff;
    padding-left: 3px;
     background: url("http://computeam.free.fr/sa/php_test/images/external.png") center right no-repeat;
    	padding-right: 12px;
    }
    .link a:hover {
    font-family: Arial, sans-serif;
    font-size: 8pt;
    color: #ffffff;
    padding-left: 3px;
     background: url("http://computeam.free.fr/sa/php_test/images/external.png") center right no-repeat;
    	padding-right: 12px;
    }
     -->
    </style>
    <script type="text/javascript">
    //<![CDATA[
     
     
     
    var req = false;
    if(window.XMLHttpRequest) {
        try {
            req = new XMLHttpRequest();
        } catch(e) {
            req = false;
        }
     
     
    } else if(window.ActiveXObject) {
        try {
            req = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(e) {
            try {
                req = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(e) {
                req = false;
            }
        }
    }
     
     
     
    function update() {
     
     
        if ( req.readyState == 4 ) {
     
            element = document.getElementById("rand");
     
            element.childNodes[0].nodeValue = req.responseText;
        }
    }
     
    function go() {
     
        if ( req ) {
     
            req.open("GET", "chat.php", true);
     
            req.onreadystatechange=update;
     
            req.send(null);
     
            setTimeout("go()", 2000);
        }
     
    }
     
    go()
    //]]>
    </script>
    </head>
    <body>
    <div class="chat" id="rand">
    </div>
    <div class="miniform">
    <form method="post">
    <?php 
    echo "<div class=\"link\"><font class=\"pseudo\">$user_name</font><br /><a href=\"#\">[Smileys]</a><a href=\"#\">[BBCode]</a></div>";
    ?>
    <input name="pseudo" size="19" value="<?php echo $user_name ?>" type= "hidden"><br />
    <textarea name="mess" cols="20" rows="3" onFocus="this.value='Tapez votre message ici'"></textarea><br />
    <input name="submit" type="submit" value="POSTER"> <input name="submit" type="submit" value="REFRESH">
    </form>
    </div>
    </body>
    </html>
    code source chat.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
     
    <?php
     
     $link = mysql_connect("localhost", "root","") or die("erreur de connexion au serveur");
     
     mysql_select_db("computeam") or die("erreur de connexion a la base de donnees");
     
     
    $requete =  mysql_query("SELECT * FROM shout ORDER BY date")or die(mysql_error());
     
    while($data = mysql_fetch_array($requete))
    	{
     
    		$pseudo = $data['pseudo'];
    		$message = $data['message'];
    		$ip = $data['ip'];
    		$date = $data['date'];
     
    	}
     
     
    		mysql_close($link);
     
    echo " <span class='date'>$date</span><br /><span class='pseudo'>$pseudo</span><span class='msg'>$message<br /><hr class='chat'>";
     
     
    ?>
    Le problème c'est que dans la div chat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <div class="chat" id="rand">
    </div>
    Les balises html s'affichent et ne sont pas interprétées
    Je pense que l'erreur, ou les modifications a faire doivent tournées autour de ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     element.childNodes[0].nodeValue = req.responseText
    Voila
    ''' Life is short, use Python '''
    Business En Ligne
    SearchEngineFight

  2. #2
    Rédacteur

    Avatar de arnolem
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 856
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 856
    Points : 6 114
    Points
    6 114
    Par défaut
    c'est légé ta page, ne pourrais tu pas essayer d'isoler ton problème et de ne poster que le minimum de code nécessaire pour résoudre ton problème.
    J'ai un peu de mal a lire des ligne de css pour rien, au pire tu joins le fichier dans ton message au lieu de le mettre dans le contenu.
    Merci.

  3. #3
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    Essaie donc ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    element.childNodes.item(0).innerHTML = req.responseText

  4. #4
    Membre régulier Avatar de Mysti¢
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 155
    Points : 116
    Points
    116
    Par défaut
    Merci pour vos réponses
    Citation Envoyé par arnolem
    poster que le minimum de code nécessaire pour résoudre ton problème.

    Merci.
    ok, la prochaine fois j'essaierai.
    Sinon linar009, j'ai essayer, pas d'erreurs, mais la sa n'affiche plus rien.
    ''' Life is short, use Python '''
    Business En Ligne
    SearchEngineFight

  5. #5
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    On a déja constaté le problème... et on sait rien n'y faire ! (helas)

    Tu dois passer par une iframe... et un reload
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  6. #6
    Membre régulier Avatar de Mysti¢
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 155
    Points : 116
    Points
    116
    Par défaut
    Je sais que c'est possible
    >>>W3Chat
    Uniquement avec ajax/javascript sans utiliser ni de frame, ni d'iframe...
    Maintenant faut que je comprenne coment ca fonctionne

    Un petit edit pour éviter le double post, je pense avoir trouvé une solution a mon problème, je fini mon javascript...
    ''' Life is short, use Python '''
    Business En Ligne
    SearchEngineFight

  7. #7
    Membre régulier Avatar de Mysti¢
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 155
    Points : 116
    Points
    116
    Par défaut
    Voilà apres une bon apres-midi de recherche, j'ai enfin réussis à faire ce que je voulais
    Shoutbox
    Il ne me manque plus qu'à ajouter une fonction pour pas que la page se reload lors d'un post. Je considère donc mon problème comme étant résolu
    ''' Life is short, use Python '''
    Business En Ligne
    SearchEngineFight

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

Discussions similaires

  1. Insérer des Balises HTML dans un champ mémo
    Par Heureux-oli dans le forum IHM
    Réponses: 18
    Dernier message: 21/03/2007, 20h05
  2. Afficher des balises HTML dans une chaine javascript
    Par lapaupiette dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/03/2007, 10h19
  3. [Digester] lire des balises html
    Par Jean-Philippe Shields dans le forum Apache
    Réponses: 2
    Dernier message: 04/09/2006, 18h55
  4. [XSLT][>HTML]Affiché des balises HTML
    Par tiboel dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 26/06/2006, 20h15
  5. faire passer des balise html d'un XML vers un XLS
    Par shaftJackson dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 26/04/2006, 16h07

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