Bonjour à tous.
C'est mon premier message, et je suis bien content de trouver un tel forum francophone.
Le script de se trouvant dans mon Google sheet construit une URL sur base de celle d'un formulaire et d'une clé unique.
var key = Utilities.getUuid();
Cela donne quelque chose qui ressemble à ceci :
var url = 'https://docs.google.com/forms/d/e/IdFor ... 375139745=' + encodeURIComponent(key);
Lorsque mon client clique sur le lien, cela ouvre son formulaire et devrait remplir le champ 1375139745 avec la clé.
Mais cela ne fonctionne pas.
Comme je n'ai pas trouvé facilement l'identifiant du champ "clé", j'ai utilisé ce script :
function getFormFieldIds() {
var form = FormApp.openById('IdFormulaireAdmin');
var items = form.getItems();
for (var i in items) {
Logger.log('Title: ' + items.getTitle() + ', ID: ' + items.getId());
}
}
Vous remarquerez au passage que je distingue d'une part l'identifiant du formulaire que j'ai en tant qu'administrateur (c'est-à-dire qu'éditeur), et d'autre part l'identifiant du formulaire de mon client.
Lorsque j'exécute mon script, j'obtiens ceci :
10:05:56 Infos Title: Clé du client, ID: 1375139745
10:05:56 Infos Title: , ID: 761264255
10:05:56 Infos Title: Civilité, ID: 2004664087
10:05:56 Infos Title: Prénom, ID: 1178533075
10:05:56 Infos Title: Nom, ID: 374041494
etc.
Dans le formulaire client, le champ de la clé n'est pas obligatoire, c'est un texte du type « réponse courte ». J'ai donc mis toutes les chances de mon côté pour que le contenu puisse être inséré.
J'ai tout essayé, y compris en navigation privée, et en inscrivant directement l'URL dans le navigateur.
Connaître l'id d'un champ GoogleForm afin de le pré-remplir.
-
En ligneNC_Quentin
- Invétéré
- Messages : 32
- Inscription : 10 oct. 2022 09:06
- A remercié : 1 fois
- Remercié : 11 fois
Re: Connaître l'id d'un champ GoogleForm afin de le pré-remplir.
Bonjour !
Je ne sais pas exactement ce qui coince de votre côté, mais je vous propose ce code que j’ai testé sur un de mes formulaires et marche très bien :
À noter que cette version présuppose que vous connaissez l’emplacement exacte de la question dans la liste des questions (ici, l’ID à remplir est la première, c’est donc à l’index 0), mais une version plus complexe de ce code récupérant la question en se basant sur son intitulé est aussi tout à fait possible. De la même manière, vous pouvez simplement ajouter un autre .withItemResponse(newItemResponse) si vous avez besoin de remplir plus de champs !
Je vous laisse tester, dites-moi si ça fonctionne !
Je ne sais pas exactement ce qui coince de votre côté, mais je vous propose ce code que j’ai testé sur un de mes formulaires et marche très bien :
Code : Tout sélectionner
function getPrefilledURL() {
// On récupère le formulaire
const form = FormApp.openById(formID)
// On récupère la question (item) qui nous intéresse, ici c’est la première.
const idItem = form.getItems()[0].asTextItem();
// On génère la clé ID aléatoire à pré-remplir
const key = Utilities.getUuid();
// On crée la réponse à la question
const idItemResponse = idItem.createResponse(key);
// On crée une "réponse" au formulaire qui va nous donner l’adresse pré-remplie
const prefilledURL = form.createResponse()
.withItemResponse(idItemResponse)
.toPrefilledUrl();
// On affiche dans la console pour vérification (identique à Logger.log() )
console.log(prefilledURL);
// On renvoie l’URL pour l’utiliser ailleurs dans le code
return prefilledURL;
}
Je vous laisse tester, dites-moi si ça fonctionne !
Rejoignez la discussion 💬
Vous devez être enregistré pour participer à la discussion et échanger avec les différents membres
Inscrivez-vous dès aujourd'hui
Vous n'êtes pas encore membre ? Rejoignez-nous gratuitement dès aujourd'hui et contribuer en postant votre réponse ou question sur tous les forums disponibles
Inscription