[AJAX] Affichage d'un xml + mise a jour automatique toutes les x sec
Bonjour!
En me fiant aux tutos disponible sur le site, j'ai commencé a écrire un code pour que ma liste de membre connecté soit automatiquement actualisé toute les x seconde sans rafraichissement de la page.
J'ai donc fait la partie php->XML.
J'ai créé quelque chose de ce type:
Citation:
<lastseen>
<user>
<user_id>23</user_id>
<user_name>toto</user_name>
<time>8h</time>
</user>
<user>
<user_id>14</user_id>
<user_name>toto2</user_name>
<time>9h</time>
</user>
</lastseen>
Mais après pour afficher en une liste, j'y arrives pas, rien s'affiche.
J'ai écris ce code ci-dessous, toujours en m'inspirant du tutorial...
Code:
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
|
<script language='javascript' type='text/javascript'>
function ajax()
{
var xhr=null;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
//on définit l'appel de la fonction au retour serveur
xhr.onreadystatechange = function() { affichage_ajax(xhr); };
//on appelle le fichier reponse.txt
xhr.open('GET', 'mon_url_xml', true);
xhr.send(null);
}
function affichage_ajax(xhr)
{
if (xhr.readyState==4)
{
var docXML= xhr.responseXML;
var items = docXML.getElementsByTagName('user')
var html = ''; /* Présentation HTML de la liste des connectés */
/* Nombre de membre a afficher */
count = items.length;
for(i = 0; i < count; i++) { /* POUR CHAQUE item */
html += '<table cellpadding="0" cellspacing="0" width="100%">';
html += '<tr>
<td class="side-small" align="left"><img src="../themes/fusion/images/bullet.gif" alt="">
';
html += '<a href="../profile.php?lookup=' + items[i].getElementsByTagName("user_id")[0].firstChild.nodeValue + '" ';
html += 'title="' + items[i].getElementsByTagName("user_name")[0].firstChild.nodeValue + '" class="side">
';
html += items[i].getElementsByTagName("user_name")[0].firstChild.nodeValue + '</a></td>';
html += '<td class="side-small" align="right">' + items[i].getElementsByTagName("time")[0].firstChild.nodeValue + '</td>
</tr>
"';
html += '</table>';
}
document.getElementById('content').innerHTML += html;
}
}
ajax();
</script>
<table cellpadding='0' cellspacing='0' width='100%'>
<tr>
<td class='scapmain'>Last Seen Users</td>
</tr>
<tr>
<td class='side-body'>
<div id='content'></div>
</td>
</tr>
</table> |
Je suis completement débutant, et j'essais de commencer par un truc simple pour apprendre.
Et par ailleurs je voudrais savoir comment mettre à jour automatiquement la liste?
merci d'avance!
update: Bon j'arrive à afficher, mais maintenant j'aimerai une mise ajour automatique et que ca soit compatible opera car ca ne lai pas.
comment faire ?