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

Développement Web en Java Discussion :

poster un formulaire sur spreadsheet


Sujet :

Développement Web en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2022
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Juillet 2022
    Messages : 17
    Par défaut poster un formulaire sur spreadsheet
    Bonjour,


    J'ai crée un page web sur laquelle je récupère des données de google sheet en déployant ma feuille googlesheet comme une application (méthode doGet) et en récupérant les données sur ma page web avec la méthode fetch.
    Je souhaite à présent faire l'inverse : déposer des données depuis mon formulaire web sur google sheet.
    Est-ce que cela est possible... et comment ?

    Je précise que je suis super débutant...

    Merci d'avance pour vos réponses !

  2. #2
    Membre chevronné
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2020
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 347
    Par défaut
    Bonjour,

    Le plus simple serait peut-être d'utiliser Apps Script. Il y à une API native pour manipuler les spreadsheets de Google. Et vous pouvez exposer un point d'entrée Web.

    + https://www.google.com/script/start/
    + https://developers.google.com/apps-script/guides/web
    + https://developers.google.com/apps-script/guides/sheets

  3. #3
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2022
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Juillet 2022
    Messages : 17
    Par défaut
    Bonjour,

    Merci pour votre réponse.
    C'est ce que j'ai fait pour récupérer les données.
    mon script fonctionne (ci-dessous). Ce que je comprends pas, c'est comment exécuter la fonction 'doPost' depuis le formulaire de mon site web.
    Code JavaScript : 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
    function doGet() {
     
     
    var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getSheetByName("Feuille 1");
      var data = sheet.getDataRange().getValues();
      var crow = sheet.getLastRow();
      var currentObject = [];
      var output = currentObject;
      for (var i = 1; i < crow; i++) {
        if (data[i][0]) {
          currentObject.push(data[i]);
        }
      }
      Logger.log(JSON.stringify(output));
      return ContentService.createTextOutput(JSON.stringify(output)).setMimeType(ContentService.MimeType.JSON);
    }
     
     
     
     
     
    function doPost(e) {
       var ss = SpreadsheetApp.openByUrl ("");  
       var sheet = ss.getSheetByName ("Feuille 1");    
       addUser (e, sheet);
     
    }
     
    function addUser (e, sheet) { 
       var form1 = e.parameter.form1 ;   
       var form2 = e.parameter.form2 ;  
          sheet.appendRow ([form1,form2]);
    }

  4. #4
    Membre chevronné
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2020
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 347
    Par défaut
    Citation Envoyé par olibouti Voir le message
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function doPost(e) {
       var ss = SpreadsheetApp.openByUrl ("");  
       var sheet = ss.getSheetByName ("Feuille 1");    
       addUser (e, sheet);
     
    }
     
    function addUser (e, sheet) { 
       var form1 = e.parameter.form1 ;   
       var form2 = e.parameter.form2 ;  
          sheet.appendRow ([form1,form2]);
    }
    Alors il faut que vitre formulaire ressemble un peu à ceci:

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form action="URL_VERS_VOTRE_APP_SCRIPT" method="POST">
      <input name="form1" />
      <input name="form2" />
    </form>

    On spécifie action pour pointer vers votre "web app App Script" et method pour que ce soit un "POST" (qui sera géré par doPost).

  5. #5
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2022
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Juillet 2022
    Messages : 17
    Par défaut
    Bonjour,

    Parfait, ça fonctionne ! c’était aussi simple que ça
    Merci beaucoup pour vos réponses.
    Par contre, qu'en j'envoie le formulaire, cela ouvre une page googleappscript qui m'indique que le script est terminé mais aucune réponse n'a été obtenue.
    Est-il possible de bloquer l'ouverture de cette page?

  6. #6
    Membre chevronné
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2020
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 347
    Par défaut
    La page s'ouvre car le formulaire est une sorte de "lien html" qui envoie vers la page décrite dans "action". Si vous ne voulez pas cet effet, il faut:

    + soit que le "doPost" de votre script retourne vers la page d'origine (fasse une redirection http)
    + soit que vous utilisez un appel Ajax qui n'influencera pas directement le contenu de votre page

  7. #7
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2022
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Juillet 2022
    Messages : 17
    Par défaut
    Merci, je vais tenter ça...

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/01/2010, 21h09
  2. Controle de formulaire sur l'envoi
    Par navis84 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/08/2005, 17h23
  3. Réponses: 8
    Dernier message: 22/03/2005, 15h06
  4. Ouverture formulaire sur enregistrement precis
    Par mat_lefebvre dans le forum IHM
    Réponses: 7
    Dernier message: 11/10/2004, 15h37
  5. [VB.NET] [PPC] Comment faire un formulaire sur pls pages?
    Par papy27 dans le forum Windows Mobile
    Réponses: 10
    Dernier message: 03/06/2004, 17h23

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