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

Langage PHP Discussion :

Action automatique sur click d'un bouton de formulaire


Sujet :

Langage PHP

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 66
    Points : 45
    Points
    45
    Par défaut Action automatique sur click d'un bouton de formulaire
    Bonjour,

    je souhaite permettre à mes visiteurs d'envoyer des vidéos (<20mo a cause des limites de mon hebergeur mutualisé).
    Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    echo "<form enctype='multipart/form-data' action='index.php?x=upload' method='post'>";
    echo "<input type='hidden' name='MAX_FILE_SIZE' value='20000000' />";
    echo "<div>Attention votre vidéo doit peser <u>moins de 20 mo</u>!</div>";
    echo "<br><div><input type='file' name='video'></div>";
    echo "<input type='submit' name='envoi' value='Envoyer' />";
    echo "</form>";
    Le problème est que le temps d'upload de la vidéo peut etre long, et pour faire patienter l'utilisateur sur la page et lui faire comprendre que sa requete a été prise en compte, j'aimerais que lorsqu'il appuie sur le bouton d'envoi, un texte (ex: "patientez svp...") s'affiche juste en dessous.

    Quelqu'un connait-il une technique pour faire cela (un attribut de la balise input de type 'submit'?)

    D'avance merci pour votre aide!!!

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Tu seras confronté à un problème : la limite imposée par PHP pour les uploads de fichiers (différente de celle de ton formulaire). Tu trouveras des infos à ce sujet dans mes tutoriels

    Sinon, pour te répondre, il faut utiliser la manipulation DOM avec JavaScript. Utilise l'évènement onsubmit de ton formulaire pour ajouter une image, par exemple.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 66
    Points : 45
    Points
    45
    Par défaut
    Salut Yoqui, merci pour ta réponse!

    En ce qui concerne la limite imposée par php, il s'agit de 20mo (jai regardé le php.ini)

    Sinon pour l'attribut onsubmit je n'ai trouvé que des choses pour les boutons radio, dur dur...

    je vais continuer les recherches

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Ce n'est pas standard mais ça fonctionne à tous les coups et c'est plus simple : innerHTML() en JavaScript.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 33
    Points : 41
    Points
    41
    Par défaut
    Tant que le browser processe l'upload (=envoie le filestream vers le serveur) il ne reçoit pas de code HTML donc tu ne peux pas inclure un code d'attente dans le script qui traite l'upload.

    Donc il te suffit par exemple:
    - d'inclure le formulaire dans un DIV avec id='formDIV'
    - d'ajouter un DIV avec style='display:none;' et id='msgDIV' qui comprend un message "L'upload est en cours.... veuillez patienter"

    Mettre un bouton avec type='button' et onclick="javascript:submitMyForm()"

    Dans le header de la page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function submitMyForm() {
       document.getElementById('formDIV').style.display = 'none';
       document.getElementById('msgDIV').style.display = 'none';
       document.myForm.submit();
    }
    Ca te permet par ailleurs d'éviter que l'utilisateur clique une nouvelle fois sur le bouton.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 66
    Points : 45
    Points
    45
    Par défaut
    Ca a l'air d'etre exactement ce qu'il me faut sylvanillo!!

    mais si j'ai bien compris, c'est plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ....
    document.getElementById('msgDIV').style.display = 'block';
    ...
    qu'il faudrait mettre dans la fonction pour que message s'affiche non?
    En tout cas Merci beaucoup je vais mettre ca en place!!

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 66
    Points : 45
    Points
    45
    Par défaut
    Excellent!!
    C'est parfait, ca marche!
    Merci beaucoup!!!

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 33
    Points : 41
    Points
    41
    Par défaut
    Oui je m'excuse, c'était :
    document.getElementById('msgDIV').style.display = '' ou 'inline' etc

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. évènement sur click pour 50 boutons d'une form
    Par timotep dans le forum Windows Forms
    Réponses: 4
    Dernier message: 22/07/2008, 11h56
  2. Script qui effectue une action automatiquement sur serveur
    Par poitierjohan dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/04/2008, 00h09
  3. Action automatique sur serveur MySQL
    Par nintendoplayer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 14/11/2007, 17h49
  4. saisie semi-automatique sur champs input sans submit du formulaire
    Par j0hnmerrick dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/10/2007, 17h54
  5. Action spécial sur clic d'un bouton
    Par thibane dans le forum GTK+ avec C & C++
    Réponses: 4
    Dernier message: 05/06/2007, 00h12

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