2017-06-21 2 views
0

Je suis enfin aux étapes finales de mon application et il y a juste une chose que je n'arrive pas à comprendre: J'utilise un iframe pour charger une page dans Google Apps Script que j'ai un formulaire.Google Apps Script: recharger la page après le formulaire de soumission

Je peux écrire des données dans une feuille de calcul Google et recevoir un message réussi si les données sont correctement insérées. La seule chose que je ne peux pas obtenir est comment faire rafraîchir le cadre après quelques secondes pour être sûr que l'utilisateur a lu le message ...

Une aide?

Merci beaucoup!

C'est mon code (crédits à @Cooper pour me aider beaucoup avec cela - il écrit essentiellement le code)

<body> 
     <div id="errorMessage" style="display:none;"> 
     <h3>Errore</h3> 
     <p>Tutti i campi devono essere compilati.</p></div> 
     <div id="data"> 
      <form name="reqForm" id="reqForm" method="post" action="" accept-charset="UTF-8"> 
       <label for="area">* Area</label> 
      <select id="area"> 
       <option value="">--Seleziona--</option> 
       <option value="1">1</option> 
       <option value="2">2</option> 
       <option value="3">3</option> 
       <option value="4">4</option> 
       <option value="5">5</option> 
       <option value="6">6</option> 
      </select> 
      <br /> 
       <label for="nome">* Oggetto:</label> 
      <input type="text" id="oggetto" name="oggetto" /> 
      <br /> 
      <br /> 
       <label for="nome">* Nome:</label> 
      <input type="text" id="nome" name="nome" /> 
      <br /> 
       <label for="cognome">* Cognome:</label> 
      <input type="text" id="cognome" name="cognome" /> 
      <br /> 
       <label for="mat">Matricola:</label> 
      <input type="text" pattern="[0-9]{6}" id="mat" name="mat" /> 
      <br /> 
       <label for="mail">* E-mail:</label> 
      <input type="mail" id="mail" name="mail"/> 
      <br /> 
       <label for="testo">* Richiesta:</label> 
      <textarea id="testo" name="testo"></textarea> 
      <br /> 
      <button type="button" value="Invia" id="btnSend" class="button mainBtn">Invia</button> 
    </form> 
     </div> 
     <div id="resp" style="display:none;"> 
     <h3>Inviato</h3> 
     <p>I tuoi dati sono stati registrati.<br/>Riceverai risposta all'indirizzo indicato.</p> 
     </div> 
     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
     <script> 
    $(function() { 
    $('#btnSend').click(validate); 
    }); 

    function setResponse(a) 
    { 
    if(a) 
    { 
     $('#data').css('display','none'); 
     $('#resp').css('display','block'); 
    } 
    } 

    function validate() 
    { 
     var area = document.getElementById('area').value; 
     var n = document.getElementById('nome').value; 
     var c = document.getElementById('cognome').value; 
     var m = document.getElementById('mat').value; 
     var em= document.getElementById('mail').value; 
     var t = document.getElementById('testo').value; 
     var o = document.getElementById('oggetto').value; 

    var a = [n, c, m, em, area, o, t, "", "Ricevuta"]; 

    if(area && n && c && em && o && t) 
    { 
     google.script.run 
     .withSuccessHandler(setResponse) 
     .getData(a); 
     $('#errorMessage').css('display','none'); 
     return true; 
    } 
    else 
    { 
     $('#errorMessage').css('display','block'); 
    } 
    } 

    function loadTxt(from,to) 
    { 
     document.getElementById(to).value = document.getElementById(from).value; 
    } 

console.log('My Code'); 

+0

Je voudrais en savoir un peu plus sur ce que vous faites avant que je puisse vous aider. Pouvez-vous partager votre code et votre feuille de calcul? – Cooper

+0

@Coopeur Bonjour à vous! Le code est le même que vous m'avez aidé auparavant, je vais éditer ma question et l'afficher dans quelques secondes – Simone

+0

@Cooper J'ai édité la question avec le code. Fondamentalement, je dois recharger cette page après que le message soit affiché (Inviato etc.), en attendant quelques secondes pour que l'utilisateur le lise. – Simone

Répondre

0

D'accord. Eh bien, je pense que c'est tout. Vous avez juste à rafraîchir la page. Vous pourriez mettre un bouton là-bas qui dit soumettre un autre formulaire qui serait juste actualiser la page. Je suppose que vous pouvez utiliser Javascript Timer pour actualiser la page 10 secondes après setResponse();

+0

Aucun changement. Je vois encore le message jusqu'à ce que je rafraîchisse la page en utilisant le bouton ou en appuyant sur F5 ... – Simone

+0

Je l'ai fait! J'ai utilisé une fonction de base comme 'var ifr = document.getElementById ('myFrame); source = "mySourceURL"; ifr.src = ""; ifr.src = "source"; 'et de cette façon j'ai été capable de recharger l'iframe chaque fois que j'appuie sur le bouton qui accède à ma page de formulaire;) – Simone

+0

Great. Es-tu à peu près fini alors? – Cooper