Barre de progression Javascript

cs_AurelR Messages postés 5 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 23 avril 2008 - 23 avril 2008 à 15:30
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 4 août 2008 à 14:14
Bonjour
Actuellement j'essaye d'envoyer un fichier sur mon serveur (sa j'y arrive) mais j'aimerais afficher une barre de progression.
En cherchant un peu j'ai trouvé quelque exemple je les ai testé mais j'ai des problemes.
Voici mon code html pour remplir le formulaire dans le fichier index.php:
<form enctype="multipart/form-data" action="index.php" method="post" onsubmit="submitForm();">
    ">
   

    <!-- histoire de tester la raction lors d'un envoie multiple
   

    -->
   
   
</form>
   
bienvenue

   

    Ko sur Ko
    Tableau des infos de progression au format json :

   

Ensuite dans le meme fichier j'ai ce morceau de javascript:
<script type="text/JavaScript">
   
    function submitForm() {
    setTimeout(envoie,30);//apres 30 seconde on arrete tout
    }

    function envoie()
    {
        var req = null;
        var idProgress=document.getElementById("progress_key").value;

        document.getElementById("aff").innerHTML="Started...";
        if(window.XMLHttpRequest)
            req = new XMLHttpRequest();
        else if (window.ActiveXObject)
            req  = new ActiveXObject(Microsoft.XMLHTTP);

        req.onreadystatechange = function()
        {
            document.getElementById("aff").innerHTML="Wait server...";
            if(req.readyState == 4)
            {
                if(req.status == 200)
                {
                    document.getElementById("aff").innerHTML="Received:" + req.responseText;
                    document.getElementById("enCours").innerHTML=req.current;
                    document.getElementById("total").innerHTML=req.total;
                    document.getElementById("tab").innerHTML=req;
                }   
                else   
                {
                    document.getElementById("aff").innerHTML="Error: returned status code " + req.status + " " + req.statusText;
                }   
            }
        };
        req.open("GET", "data.php?progress_key="+idProgress, true);
        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        req.send(null);
    }
    </script>

Dans le fichier data.php:
<?php

if (isset($_GET['progress_key'])) {
    $rep=apc_fetch('upload_'.$_GET['progress_key']);
    echo "bien joué $rep";
}
?>

Le probleme c'est qu'il ne me renvoie rien dans mon rep.responseText alors j'aimerais savoir où sa cloche dans ce code. Merci.

3 réponses

cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
23 avril 2008 à 16:40
Bonjour,

    lorsque que tu soumets ton formulaire, ça va l'envoyer et
       "remplacer" la page actuelle par la réponse de index.php.
       le setTimeout et le reste... n'est plus actif.

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
abdellahel Messages postés 1 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 4 août 2008
4 août 2008 à 13:37
meci d'avance  je veut envoyer un champ file avec ajax
vous pouvait m'aider?
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
4 août 2008 à 14:14
je veux.. je veux...   ebn, tu peux !
mais tant qu'à la gérer coté serveur, c'est une autre paire de maches !

             Cordialement            Bul           [mon Site]       [M'écrire]
0