Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Invité de passage
    Inscrit en
    juillet 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : juillet 2006
    Messages : 19
    Points : 3
    Points
    3

    Par défaut Afficher instantanément les messages des internautes

    Bonjour,

    Je ne connais rien à l'Ajax mais j'aimerais mettre en place deux fonctionnalités qui nécessitent je crois ce type de code.

    Premièrement, je crée une page pour une webradio. Une div affiche le titre du morceau entendu actuellement. J'aimerais recharger uniquement le contenu de ce div toutes les x secondes sans actualiser toute la page entière (pour ne pas que la musique s'interrompt). Voici le code contenu dans ce div :

    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
     
    <div class="texteradio2">
    <? 
    $ip = "www.media-tchat.org";  
    $port = "8000"; 
     
    $fp = @fsockopen("$ip", "$port", $errno, $errstr, 30); 
     
    if(!$fp) 
    { 
    $auditeurs = "0"; 
    $places = "0"; 
    $etat = "Serveur d&eacute;connect&eacute;."; 
    } 
     
    else 
    { 
    fputs($fp, "GET /7.html HTTP/1.0\r\nUser-Agent: Mozilla/4.0\r\n\r\n"); 
     
    while(!feof($fp)) 
    { 
    $content .= fgets($fp,128); 
    } 
     
    fclose($fp); 
    $debut = strpos($content, '<body>') + strlen('<body>'); 
    $fin = strpos($content, '</body>', $debut); 
    $servi = substr($content, $debut, $fin - $debut); 
    $option = explode(',', $servi); 
     
    if ($option[1] == 0) 
    { 
    $auditeurs = "0"; 
    $places = "0"; 
    $etat = "Aucune source serveur connectée."; 
    } 
    else 
    { 
    $auditeurs = $option[0]; 
    $pointe = $option[2]; 
    $places = $option[3]; 
    $bitrate = $option[5]; 
    $titre = $option[6]; 
    $etat = "Source connectée serveur connecté serveur Ok !"; 
    } 
    } 
    echo "$titre"; 
     
    ?> 
    </div>
    Mon deuxième problème : j'aimerais afficher instantanément les messages (texte qui défile) postés par les internautes dans un champ de texte placé sur la même page. Est-ce que l'Ajax permet cela ?

    Merci de votre aide

  2. #2
    Responsable Développement Web

    Avatar de Bovino
    Homme Profil pro Didier Mouronval
    Développeur Web
    Inscrit en
    juin 2008
    Messages
    22 013
    Détails du profil
    Informations personnelles :
    Nom : Homme Didier Mouronval
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : juin 2008
    Messages : 22 013
    Points : 80 716
    Points
    80 716

    Par défaut

    Oui, ce que tu veux faire est possible avec AJAX.

    Je ne connais rien à l'Ajax
    Alors il va falloir t'y mettre, parce que nous ne sommes pas là pour coder pour toi.
    Cours AJAX.
    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

  3. #3
    Modérateur

    Inscrit en
    septembre 2004
    Messages
    9 530
    Détails du profil
    Informations forums :
    Inscription : septembre 2004
    Messages : 9 530
    Points : 14 358
    Points
    14 358

    Par défaut

    Citation Envoyé par darius1000 Voir le message
    Mon deuxième problème : j'aimerais afficher instantanément les messages (texte qui défile) postés par les internautes dans un champ de texte placé sur la même page. Est-ce que l'Ajax permet cela ?
    "Instantanément" ? Ce sera à mettre à jour toutes les x secondes, comme l'autre. Vraiment instantanément ça reste faisable avec les websockets, mais c'est nettement moins bien géré par les navigateurs et les serveurs.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher du poisson, il videra le lac et au bout de deux ans son village ne mangera plus jamais.
    Partagez vos connaissances, mais aussi comment s'en servir.

  4. #4
    Invité de passage
    Inscrit en
    juillet 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : juillet 2006
    Messages : 19
    Points : 3
    Points
    3

    Par défaut

    Merci à vous deux pour vos réponses

    OK Bovino, je vais apprendre l'Ajax mais peut-être pourrais-tu m'indiquer quel chapitre je dois étudier en premier dans ce vaste site. J'aimerais bien pouvoir mettre en place les éléments avant d'avoir fini de lire la dernière leçon

    Thelvin, mettre à jour le div toutes les x secondes est bien suffisant. Je me suis mal exprimé, je ne cherche pas réellement une actualisation instantanée...

  5. #5
    Futur Membre du Club
    Inscrit en
    juin 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 28

    Informations forums :
    Inscription : juin 2008
    Messages : 29
    Points : 16
    Points
    16

    Par défaut

    Pour ton rafraîchissement toutes les x secondes, faudra passer par du setInterval().
    Pour rafraîchir juste ton <div>, faudra faire une requête ajax soit par du XmlHttpRequest directement, soit assisté par un frameworks style JQuery qui peut te simplifier un peu l'utilisation du javascript.
    http://api.jquery.com/jQuery.ajax/
    Mais tu peux pas trop te lancer sans apprendre les bases pour savoir ce que tu fais quand même.
    Bon courage.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •