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] Impossible d'envoyer deux fois la même phrase.


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 13
    Points : 8
    Points
    8
    Par défaut [AJAX] Impossible d'envoyer deux fois la même phrase.
    Bonjour,
    je teste pour la première fois un système de réception et d'envoie de données avec ajax.

    Le problème est le suivant: Je n'arrive pas à envoyer deux fois la même phrase sous internet explorer 7. La version 6 et sous mozilla firefox aucun problème.

    Je pense donc que le problème se situe au nivaux de la mise en cache mais j'ai déjà tenter de résoudre ce problème. Voyez vous-même.

    Page 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
     
    <script>
    function onKeyPressNumbers(e)
    {
     var key = window.event ? e.keyCode : e.which;
     if(key == 13){
     save(document.getElementById('message').value);
     }
     var keychar = String.fromCharCode(key);
     reg = /\r/; // Permet de capturer un retour chariot.
     return !reg.test(keychar);
    }
    function AfficherPhrases(){
     texte = file('ToutesLesPhrases.php');
     document.getElementById('AfficherToutesLesPhrases').innerHTML = texte;      
    }
    window.setInterval("AfficherPhrases()",1000);
    function save(data){
     message.value = "";
     message.focus();
     file('sauvegarde.php?q='+escape(data));
    }
    function file(fichier)
    {
     if(window.XMLHttpRequest) // FIREFOX
     xhr_object = new XMLHttpRequest();
     else if(window.ActiveXObject) // IE
     xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
     else
     return(false);
     xhr_object.open("GET", fichier, false);
     xhr_object.send(null);
     if(xhr_object.readyState == 4) return(xhr_object.responseText);
     else return(false);
    }
    </script>
    <div id="AfficherToutesLesPhrases"></div>
    <textarea id="message" onkeypress="return onKeyPressNumbers(event);"></textarea>
    Page sauvegarde.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?
    if(isset($_GET['q']) and $_GET['q']!=""){
     $filename = 'ToutesLesPhrases.php';
     if (is_writable($filename)) {
     $handle = fopen($filename, "a");
     fwrite($handle, $_GET['q']."<br>\n");
     fclose($handle);
     }exit;
    }
    ?>
    Page ToutesLesPhrases.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?
    // on empêche la mise en cache.
    header("Content-Type: text/html; charset=utf-8");
    header("Cache-Control: no-cache, must-revalidate"); 
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
    ?>
    Petites explications

    Les phrases écrites dans le textarea de la page index.php sont transmises à la page sauvegarde.php qui sert à écrire ce qui était dans le textarea dans le fichier ToutesLesPhrases.php et ainsi les faire apparaître à la page index.php avec une actualisation toutes les secondes.

    J'ai tenté quelque procédés mais celui là semble le moins compliqué pour une démonstration claire du problème. Ainsi j'espère que vous pourrez tenter de comprendre ce qui ne va pas.

    Merci d'avance.

    J'insiste sur le fait que ce code fonctionne sous internet explorer 6 et firefox. Cela vous permettra peut-être de ne pas perdre du temps inutilement

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Aucune idée?

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/07/2015, 14h39
  2. La même requêtes envoyée deux fois
    Par ralf91 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 05/11/2012, 17h57
  3. Réponses: 7
    Dernier message: 23/07/2006, 18h50
  4. empecher d'avoir deux fois la même chose dans une listebox
    Par Seb4657 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 25/03/2006, 21h26
  5. surcharger deux fois le même opérateur
    Par Tex-Twil dans le forum C++
    Réponses: 2
    Dernier message: 01/12/2005, 19h45

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