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 :

Soumission et retour formulaire


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Par défaut Soumission et retour formulaire
    Bonjour,

    je suis entrain de devenir fou, mais c'est probablement parce que je suis débutant

    Voici mon problème (je l'ai déjà exposé sur le forum php/formulaire mais je m'aperçoit qu'il s'agit bien d'un problème javascript...) :


    lorsque j'essaie de valider un formulaire d'upload de fichier, je voudrai , si il y a une erreur, que celle-ci s'affiche dans la même page que le formulaire, dessous et en rouge.

    Mais en attendant de recevoir ces informations, je souhaite afficher un message qui demande à l'utilisateur de patienter. Voici comment j'ai créer mon fichier du formulaire test.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
     
     
    <?php
    if($_POST)
    {
            require("upload.php");
     
    }
    ?>
     
     
     
    <script language="JavaScript">
    <!--
    window.onload = function()
    {
    	document.getElementById("id_div_message_wait").style.display = "none";
    	document.getElementById("id_button_submit").disabled = "";
     
    	document.getElementById("id_button_submit").onclick = 
    		function ()
    		{
    			document.getElementById("id_div_message_wait").style.display = "";
    			document.getElementById("id_button_submit").disabled = "disabled";
    			document.getElementById("id_div_message_returned").innerHTML = "";
    		}
    };
     
    -->
    </script> 
     
     
     
    <form method="POST" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" enctype="multipart/form-data">
         <input type="hidden" name="MAX_FILE_SIZE" value="70000000">
         Fichier : <input type="file" name="avatar">
         <input type="submit" name="envoyer" id="id_button_submit" value="Envoyer le fichier">
    </form>
     
    <div id="id_div_message_wait" style="color:red; font-size:9pt; display:none;">
    	<br />
    	Veuillez patienter, traitement en cours...
    	<br />
    	<img id="id_img_upload" src="../general/img/chargeur.gif" /> 
    </div>
     
     
    <?php
    if( isset($message_upload) && $message_upload != 1)
    {
    ?>
     
    	<div id="id_div_message_returned" style="color:red; font-size:8pt;">
    		<br />
    <?php
                    echo $message_upload;
                    unset($message_upload);
    ?>
    	</div>
    <?php   
    }
     
    ?>
    et voici le fichier de traitement upload.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
     
    <?php
     
    sleep(1);
     
    $message_upload = 1;
     
     
    $dossier = 'upload/';
    $fichier = basename($_FILES['avatar']['name']);
    $taille_maxi = 100000;
    $taille = filesize($_FILES['avatar']['tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.txt');
    $extension = strrchr($_FILES['avatar']['name'], '.'); 
    //Début des vérifications de sécurité...
    if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
    {
         $message_upload = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
    }
    if($taille>$taille_maxi)
    {
         $message_upload=  'Le fichier est trop gros...';
    }
    if(!isset($message_upload)) //S'il n'y a pas d'erreur, on upload
    {
         //On formate le nom du fichier ici...
         $fichier = strtr($fichier, 
              'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
              'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
         $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
         if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
         {
              $message_upload= 'Upload effectué avec succès !';
         }
         else //Sinon (la fonction renvoie FALSE).
         {
              $message_upload= 'Echec de l\'upload !';
         }
    }
     
    ?>
    Ce code fonctionne sous FF, autrement dit, que lorsque je clique sur le bouton de soumission, le message de patienter s'affiche et que dès le traitement terminer, ça s'en va pour laisser place au message d'erreur.
    Mais ça ne marche pas sous IE!!!! c'est à dire, qu'il reste bloqué sur le message "Veuillez patienter, traitement en cours", et je ne vois vraiment pas pourquoi ?!?

    Ah oui, et permettez moi de préciser : lorsque je commentairise cette ligne dans mon fichier test.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    //document.getElementById("id_button_submit").disabled = "disabled";
    Et bien ca marche presque, mais bizzarement l'animation .gif ne bouge plus... par contre ca affiche bien :

    1. veuillez patienter...
    2. et ensuite le message de retour du formulaire



    Voici donc mon problème, si quelqu'un a une idée parce que la... je suis un peu larguer!!

    Merci.

  2. #2
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("id_button_submit").disabled = false;
    Sinon, question bete, mais c'est quoi l'erreur que te renvoie IE?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Par défaut
    Citation Envoyé par DoubleU Voir le message
    Essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("id_button_submit").disabled = false;
    Sinon, question bete, mais c'est quoi l'erreur que te renvoie IE?
    Ben j'ai essayé mais ça produit la même chose que si je commentairisais la ligne que j'ai mentionné plus haut... (à mon avis c'est normal car ce n'est pas la bonne syntaxe, donc c'est comme si c'était en commentaire).

    Sinon ta question n'est pas bête mais je ne crois pas qu'IE renvoie une erreur!! Peut-être que je me trompe, peux-tu me dire comment verifier les erreurs renvoyéss? (je suis vraiment naze en JS )

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Salut,
    style.display doit prendre la valeur 'none' ou "block", et disabled "true" ou "false".
    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
    <script language="JavaScript">
    <!--
    window.onload = function()
    {
    	document.getElementById("id_div_message_wait").style.display = "none";
    	document.getElementById("id_button_submit").disabled = true;
     
    	document.getElementById("id_button_submit").onclick = 
    		function ()
    		{
    			document.getElementById("id_div_message_wait").style.display = "block";
    			document.getElementById("id_button_submit").disabled = false;
    			document.getElementById("id_div_message_returned").innerHTML = "";
    		}
    };
     
    -->
    </script>

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Par défaut
    andry.aime merci de ta réponse, j'ai fais ce que tu as écrit mais ça ne change rien, c'est toujours pareil...

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Par défaut
    J'ai même essayé de remplacer le display:none par visibility:hidden mais ça produit le même résultat : ça marche sous FF mais pas sous IE...

    C'est à n'y rien comprendre ?!?

    Est-on sure qu'il faut mettre ce code dans le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    window.onload = function()
    Peut-être ca viens de la?

Discussions similaires

  1. Erreur de soumission d'un formulaire
    Par sagitarium dans le forum Langage
    Réponses: 1
    Dernier message: 14/05/2006, 12h21
  2. mozilla , soumission d'un formulaire dans un cadre different
    Par japz dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/05/2006, 17h10
  3. [Javascript] Validation soumission d'un formulaire
    Par nico33307 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 14/11/2005, 15h05
  4. Réponses: 2
    Dernier message: 10/11/2005, 20h00
  5. [JSP]Problème de double soumission d'un formulaire
    Par jgfa9 dans le forum Servlets/JSP
    Réponses: 31
    Dernier message: 24/08/2005, 11h54

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