Select d'un formulaire HTML dans un Sheet
Bonjour.
Sur un Sheet, j'ai un formulaire HTML d'envoi de mail.
J'ai un script qui me récupère tous les contacts que j'ai sur Gmail que je voudrais mettre dans un <select> de mon formulaire HTML dans mon code.gs:
Code:
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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
| <!DOCTYPE html><html>
<head>
<base target="_top">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<style>
form {
/* Pour le centrer dans la page */
margin: 0 auto;
width: 500px;
/* Pour voir les limites du formulaire */
padding: 1em;
border: 1px solid #CCC;
border-radius: 1em;
}
div + div {
margin-top: 1em;
}
label {
/* Afin de s'assurer que toutes les étiquettes aient la même dimension et soient alignées correctement */
display: inline-block;
width: 90px;
}
input, textarea {
/* Afin de s'assurer que tous les champs textuels utilisent la même police
Par défaut, textarea utilise une police à espacement constant */
font: 1em sans-serif;
/* Pour donner la même dimension à tous les champs textuels */
width: 300px;
-moz-box-sizing: border-box;
box-sizing: border-box;
/* Pour harmoniser l'apparence des bordures des champs textuels */
border: 1px solid #999;
}
input:focus, textarea:focus {
/* Afin de réhausser les éléments actifs */
border-color: #000;
}
textarea {
/* Pour aligner correctement les champs multilignes et leurs étiquettes */
vertical-align: top;
/* Pour donner assez d'espace pour entrer du texte */
height: 5em;
/* Pour permettre aux utilisateurs de redimensionner un champ textuel horizontalement
Cela ne marche pas avec tous les navigateurs */
resize: vertical;
}
.button {
/* Pour positionner les boutons de la même manière que les champs textuels */
padding-left: 90px; /* même dimension que les étiquettes */
}
button {
/* Cette marge représente approximativement le même espace
que celui entre les étiquettes et les champs textuels */
margin-left: .5em;
}
#alert_msg{
text-align: center;
}
</style>
</head>
<body>
<div id="alert_msg" class="alert alert-danger hidden" role="alert">
Veuillez remplir les champs obligatoire.
</div>
<form id="form_email">
<div class="form-group">
<label for="contact">Contact :</label>
<select class="form-control" id="contacts">
<?!= getContactsUser(); ?>
</select>
</div>
<div class="form-group">
<label for="courriel">Courriel :</label>
<input class="form-control" type="email" id="courriel" name="user_email" placeholder="Adresse e-mail" required>
</div>
<div class="form-group">
<label for="objet">Objet :</label>
<input class="form-control" type="text" id="objet" name="objet_email" placeholder="Objet du message" required autocomplete="off">
</div>
<div class="form-group">
<label for="message">Message :</label>
<textarea class="form-control" id="message" name="message_email" placeholder="Message" rows="6" required autocomplete="off"></textarea>
</div>
<div class="button">
<button id="submit_form" class="btn btn-success" type="button">Envoyer le message</button>
</div>
</form>
</body>
<script type='text/javascript'>
$(function() {
$('#courriel').val('destinataireParDefaut@exemple.com');
$('#submit_form').on('click', function(){
var email = $('#courriel').val();
var objet = $('#objet').val();
var form = '<h1>Formulaire test</h1>' +
'<form id="test-form">' +
'<label for="nom">Nom</label><br />' +
'<input type="text" name="nom" id="nom"/><br />' +
'<label for="prenom">Prénom</label><br />' +
'<input type="text" name="prenom" id="prenom"/><br />' +
'<label for="sujet">Sujet</label><br />' +
'<input type="text" name="sujet" id="sujet"/><br />' +
'<label for="message">Message : </label><br />' +
'<textarea name="message" id="message"></textarea><br />' +
'<button class="btn btn-success" type="submit" id="submit-form" name="envoyer" >Envoyer</button><br />';
var msg = $('#message').val() + form;
if(email != '' && objet != '' && msg != ''){
google.script.run.sendMail(email, objet, msg);
google.script.host.close();
Browser.msgBox('Le mail de facturation a bien été envoyé à ' + email + '.')
}else{
$("#alert_msg").removeClass("hidden");
if(email == ''){
$('#courriel').css('border-color', 'red');
}else{
$('#courriel').css('border-color', '#ccc');
}
if(objet == ''){
$('#objet').css('border-color', 'red');
}else{
$('#courriel').css('border-color', '#ccc');
}
if(msg == ''){
$('#message').css('border-color', 'red');
}else{
$('#courriel').css('border-color', '#ccc');
}
}
});
$('#courriel').on('change', function(){
if($('#courriel').val() != ''){
$(this).css('border-color', '#ccc');
}
});
$('#objet').on('change', function(){
if($('#objet').val() != ''){
$(this).css('border-color', '#ccc');
}
});
$('#message').on('change', function(){
if($('#message').val() != ''){
$(this).css('border-color', '#ccc');
}
});
});
</script>
</html> |
Le méthode getContactsUser() ligne 74, me remonte bien les infos que je veux (j'ai mon résultat voulu quand je ais un Browser.msg(getContactsUser()) !)mais impossible de les afficher dans mon <select> (voir ligne 74 de mon code HTML).
Ça fais 3 jours que j'y suis dessus et je n'arrive à rien.
Help pls :?:?
Merci d'avance pour votre aide.