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

Django Python Discussion :

script pour action d'un bouton html


Sujet :

Django Python

  1. #1
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut script pour action d'un bouton html
    Bonjour à tous,

    Je souhaite utiliser un bouton pour exécuter une action autre que "Submit" ou "Reset". Dans mon cas actuel il s'agit de sauvegarder les valeurs d'un formulaire dans une bdd.

    Pour cela je pensai utiliser le troisième type de bouton que le HTML nous offre. J'ai lu qu'il fallait pour le faire fonctionner, utiliser un script Java, VB ou PHP. Comme je maitrise aucun de ces langage je voulais savoir s'il existe une solution pour faire des scripts en python ou plus généralement comment faire ce que je souhaite à la base (enregistrer les valeurs de formulaire dans une bdd).

    Dernière info, je souhaite éviter l'enregistrement en même temps que l'envoi du formulaire. J'aimerai vraiment dissocier ces deux actions...
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  2. #2
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    Salut,

    Je souhaite utiliser un bouton pour exécuter une action autre que "Submit" ou "Reset"
    Je vois pas ce que tu lui reproche au <input type="submit"> c'est standard?

    Si tu veux juste créer un enregistrement d'une instance de modèle, tu peux utiliser directement les ModelForm.

    Si tu dois faire autre chose, tu envoyes tes données à ta vue (en POST) et tu utilises un formulaire Django avec validation des champs au besoin.

    Cela depend de ton besoin exacte..

  3. #3
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par pacificator Voir le message
    Salut,

    Je vois pas ce que tu lui reproche au <input type="submit"> c'est standard?
    Je ne lui reproche rien du tout. Ce que je souhaite c'est dissocier la fonction "envoi pour poursuivre dans le site" et la fonction "envoi pour enregistrement"...

    Je m'explique...
    Mon site a trois pages, contenant chacune un formulaire. La validation du premier permet de renseigner une partie du second et la validation du second permet de renseigner une partie du dernier.

    A chaque moment l'utilisateur peut valider et passer à l'étape suivante ou revenir en arrière si les résultats ne sont pas satisfaisant.
    A la fin l'utilisateur peut s'il le souhaite enregistrer les données pour pouvoir les retravailler ultérieurement.
    Si j'associe "l'envoi pour validation" avec "l'envoi pour enregistrement" systématiquement j'aurai un nouvel enregistrement. Il va donc falloir que je gère des références de projets, doublons... et j'ai pas envie.
    Alors que si je peux dissocier les deux c'est beaucoup plus simple.

    Il va aussi falloir rapidement que je me penche sur l'aspect "édition d'un rapport". Mon programme étant déjà fonctionnel en python pur (pas de Django), mon modèle de rapport existe déjà avec reportlab.
    Je sais qu'il y a une façon de faire avec Django et pour le moment je n'ai même pas essayé de chercher.
    Je me dis que si je peux créer encore un nouveau bouton et faire en sorte qu'un clic dessus lance le script python qui me permet de faire mon rapport actuel, je vais gagner un max de temps, avant un peau-finage final et nikel de mon site.

    Voila entre autre pourquoi je cherche à faire ceci...
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  4. #4
    Membre éprouvé
    Inscrit en
    Mars 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2003
    Messages : 127
    Par défaut
    Euh je ne vois pas le problème tu mets un name différent pour tes deux boutons submit et tu as deux actions différentes :/

    Moi pas comprendre ton problème ??

  5. #5
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    regarde du côté des formWizard si ça repond à ton besoin.

  6. #6
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut
    Cet outil à l'air très intéressant mais je ne pense pas qu'il me permettent de créer un autre bouton dans mon formulaire final me permettant de lancer un enregistrement ou un édition pdf. Ou sinon c'est que j'ai pas tout pigé, ce qui est aussi possible.

    Par contre cet exemple me montre une nouvelle fois la puissance des Form, et j'en profite pour poser deux petites questions supplémentaires et un peu hors sujet:
    * La mise en forme du formulaire est-elle figée ou y a t-il un moyen de positionner à notre convenance les éléments du formulaire...
    * Comment gérer les caractères spéciaux dans les noms des éléments des formulaire...
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  7. #7
    Membre confirmé
    Profil pro
    Développeur Back-End
    Inscrit en
    Septembre 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Septembre 2007
    Messages : 81
    Par défaut
    A mon avis on peut bien positionné les éléments d'un formulaire comme bon nous semble. les champs sont toujours du genre: {{formulaire.champs}} donc à toi de voir où le positionné dans ton template.
    Pour les caractères spéciaux je ne comprends pas trop mais dans les form je crois qu'il exite une option 'label' donc si "label=u'Elève:'" je crois qu'en faisant :{{formulaire.champs.label}} tu aura ton label:Elève.
    Merci et j'espère t'avoir aider.

  8. #8
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    La mise en forme du formulaire est-elle figée ou y a t-il un moyen de positionner à notre convenance les éléments du formulaire...
    de base, tu peux utiliser les méthodes as_p, as_table et as_ul qui génerent ton formulaire dans l'odre de définition des champs dans ta classe formulaire
    Si cela ne te convient pas, tu peux coder 'en dur' la répresentation dans tes templates.(comme indiqué par malick021988)
    Comment gérer les caractères spéciaux dans les noms des éléments des formulaire...
    En utilisant les labels.

  9. #9
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut
    Ok et merci pour ces réponses.

    Pour revenir à ma question originale et après pas mal de recherche j'ai l'impression que notre simple bouton n'accepte pas grand chose d'autre que le JavaScript ou VBScript ou PHP.
    Qu'à cela ne tienne...

    J'ai trouvé une astuce pour faire ce que je veux...

    Une dernière page qui récapitule toutes les valeurs calculées dans mon formulaire, et un petit cadre avec des CheckBox pour les suite à donner au projet... (enregistrement, export, édition...)
    Et le tour est joué.

    Merci de votre participation à vous deux.

    Bonne journée
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  10. #10
    Membre éprouvé
    Inscrit en
    Mars 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2003
    Messages : 127
    Par défaut
    ccepte pas grand chose d'autre que le JavaScript ou VBScript ou PHP.
    Il faut vraiment que tu m'explique cette partie car je capte pas
    le bouton tu parle du bouton html du style input type submit ou type button ?

    comment tu fais pour mélanger deux langage coté serveur et un langage coté client ?
    (quoique vbscript pour faire un site )

    Et qu'est que tu peux faire sois disant faire avec ces 3 langage que tu ne peux pas faire en python

  11. #11
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par Tyrus Voir le message
    Il faut vraiment que tu m'explique cette partie car je capte pas
    le bouton tu parle du bouton html du style input type submit ou type button ?
    type button

    Citation Envoyé par Tyrus Voir le message
    comment tu fais pour mélanger deux langage coté serveur et un langage coté client ?
    (quoique vbscript pour faire un site )
    Relis le début tu verras que justement il est là mon problème. Je ne veux pas utiliser un autre langage. Malheureusement le bouton html en question ne permet à priori pas un script en python... Donc j'abandonne cette solution et je prends l'idée de mon dernier post.


    Citation Envoyé par Tyrus Voir le message
    Et qu'est que tu peux faire sois disant faire avec ces 3 langage que tu ne peux pas faire en python
    Dans le cas présent rendre l'utilisation du bouton html type button fonctionnel.

    Pour le reste... Hhhhhhhhhhhmmmmmmmmm perdre du temps. C'est pour ça que j'aime Python.

    Evidemment si tu me trouves une solution pour lancer une fonction python en cliquant sur ce maudit bouton je suis preneur.
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  12. #12
    Membre éprouvé
    Inscrit en
    Mars 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2003
    Messages : 127
    Par défaut
    Alors pour te répondre voila un petit extrait des spec d'html
    les boutons poussoirs : les boutons poussoirs n'ont pas de comportement par défaut. Chaque bouton poussoir peut avoir des scripts côté client qui sont associés aux attributs d'événement de l'élément. Quand un événement se produit (par exemple, l'utilisateur presse le bouton, le relâche, etc.), le script associé est déclenché.
    Donc on peux les utiliser avec un script javascript (et donc php ou vbscript je ne vois pas comment il peuvent provoquer une action sur ce type de bouton)

    Mais si tu veux quelque chose de plus personnalisable tu peux utiliser l'element button
    http://www.la-grange.net/w3c/html4.0...ml#edef-BUTTON

  13. #13
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par Tyrus Voir le message
    Alors pour te répondre voila un petit extrait des spec d'html

    Donc on peux les utiliser avec un script javascript (et donc php ou vbscript je ne vois pas comment il peuvent provoquer une action sur ce type de bouton)
    C'est ici que j'ai vu la première fois les scripts.
    Par contre effectivement je suis allé un peu vite. A priori beaucoup de scripts peuvent être en JavaScript et VBScript mais pas ceux associés aux boutons

    Citation Envoyé par Tyrus Voir le message
    Mais si tu veux quelque chose de plus personnalisable tu peux utiliser l'element button
    http://www.la-grange.net/w3c/html4.0...ml#edef-BUTTON
    Je regarderai ceci de plus près, mais après réflexion l'astuce que j'ai trouvé me plait bien.

    Merci quand même
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  14. #14
    Membre Expert
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Par défaut
    Citation Envoyé par Jiyuu Voir le message
    ...

    Pour revenir à ma question originale et après pas mal de recherche j'ai l'impression que notre simple bouton n'accepte pas grand chose d'autre que le JavaScript ou VBScript ou PHP.
    Qu'à cela ne tienne...
    Je vais tout de même revenir sur cette phrase. Je pense que tu mélanges un peu les deux technologies.

    Tu as deux types de script, ceux coté client et ceux coté serveur.

    Parmi ceux coté client, tu as Javascript et VBScript parmi les plus connu, Javascript étant celui le pus largement représenté. (Tu as aussi Python en script coté client, mais c'est anecdotique et il faut que l'utilisateur installe des éléments supplémentaires)

    Parmi ceux coté serveur, tu as PHP, Pyhton, Perl, Coldfusion ou n'importe quel language pouvant tourné en CGI.

    Ces deux technologies ne sont pas du tout interchangeable. Un script coté client te permettra de manipuler les données de la page HTML en temps réel (manipulation du dom la plupart du temps) alors que ceux coté serveur impliquerons toujours un rechargement de la page (total ou partiel).

    Pour en revenir à nos boutons, les deux types de script sont appellés différemment par nos boutons. Un script coté client sera exécuté par l'attribut onclick du bouton, alors qu'un script coté serveur le sera par l'attribut action du formulaire.

    Script coté client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" value="ouvrir la page" onClick="message()"/>
    Ce code HTML ne fais que manipuler les données de la page actuelle, dans le cas actuel, il appelle la fonction message écrite ailleurs dans la page HTML à l'intérieur de balises <SCRIPT></SCRIPT>.

    Script coté serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <form action="<a href="http://www.domaine.com/" target="_blank">/pagesuivante</a>" method="post"> 
    <input type="radio" name="test" value="oui" checked> oui<br> 
    <input type="radio" name="test" value="non"> non<br> 
    <input type="submit" value="Test"> 
    </form>
    Ce bouton passera les valeurs du formulaire au serveur à la l'adresse /pagesuivante soit par la méthode post (dans ce cas) soit par la méthode get. Le serveur aura la responsabilité de traiter les données qu'il reçoit et de générer une nouvelle page à afficher.

    Pour finir, il existe une solution mixte, qui permets d'appeller un script coté serveur par un script coté client, c'est ce que l'on nomme ajax. Le principe est de générer un submit par du code Javascript, de récupérer le résultat et de l'afficher dans la page sans rechargement de la page.

    J'espère avoir éclairer un peu ta lanterne vu qu'il me semblait que tu mélangeais un peu les deux.

  15. #15
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut
    Merci DelphiManiac pour ces précisions.

    A l'origine mon besoin correspondait je pense plus à un script coté client. Et je voulais donc savoir s'il était possible d'avoir ce dit script en python.

    A priori c'est faisable mais galère... donc j'oublie et me concentre sur mon idée de gérer les actions de l'utilisateur par des cases à cocher...

    Merci encore
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

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

Discussions similaires

  1. script pour cliquer sur ces boutons
    Par pueblorasta dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/08/2011, 14h42
  2. Lancement d'un script pour mettre à jour un tableau HTML
    Par Goltar dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 29/06/2011, 13h39
  3. Script pour coloration syntaxique de code html
    Par piotrr dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 25/03/2010, 22h30
  4. [FLASH 8] Problème pour l'action d'un bouton.
    Par goma771 dans le forum Flash
    Réponses: 2
    Dernier message: 09/12/2005, 15h59
  5. Script pour enlever les balises html
    Par Scratch48 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 02/11/2005, 17h16

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