je vois la cause du message mais je n'arrive pas à le résoudre, je vous explique ....
dans l'application j'envoie les images à google drive,
j'ai l'id de l'image dans googlesheet, et je récupère l'image sur l'application, là tout va bien.
j'ai ce message d'erreur quand je clique sur le bouton14 (qui me permet de modifier toutes les données "textes et images" de cet écran), et je ne peu pas modifier les données "textes" dans la googlesheet !
Par contre quand j'enlève l'étiquette de l'image concernée j'ai ce message d'erreur (ce qui est normal car il manque une donnée dans le bloc), mais du coup je peux modifier les données " textes" dans la googlesheet !
Je n'arrive pas à corriger ce problème !
Peut être corriger le script de la fonction "modifier" par rapport à l'image ?
Où corriger les blocs (par rapport à la liste) ?
oui je sais qu'il y a une erreur, j'avais débogué pour obtenir la réponse :
dans le bloc de la fonction "ReadReportData" j'obtient ce que j'ai dans la googlesheet, donc pas de problème.
Et dans la fonction "Modifier" j'obtient le bon texte, mais pas l'id de l'image (normalement je dois avoir l'id) ! je pense que mon problème est là, mais je n'arrive pas à le résoudre ! et le texte ne veut pas se modifier dans googlesheet , peut être à cause de ça !
Je pense que le problème du message d'erreur vient de l'étiquette "imagemodifbrico", car j'ai fais des test avec l'application en modifiant plusieurs blocs et c'était à chaque fois cette étiquette qui me pose problème quand je clique sur le bouton.
J'ai une fonction "modifier" sur ce bouton, et peut être que je dois modifier le script par rapport à l'étiquette ?
voilà le script de la fonction :
if (e.parameter.func == "Modifier1") {
var ss = SpreadsheetApp.openById(e.parameter.ID);
var sh = ss.getSheetByName(e.parameter.SHT);
var rows = sh.getDataRange().getValues();
var row, rowid;
var newData = [];
var data = JSON.parse('[' + e.parameter.DATA + ']');
for (var j=0; j<data[0].length; j++) {
newData.push(data[0][j].replaceAll('|','\n'));
}
for (var i=0;i<rows.length;i++) {
if ( e.parameter.nom == rows[i][0] ) {
rowid = (i);
}
}
newData = [newData];
sh.getRange((parseInt(rowid) + 1),1,1,data[0].length).setValues(newData);
SpreadsheetApp.flush();
var returnData = [];
newRow = sh.getRange((parseInt(rowid) + 1),1,1,data[0].length).getValues();
for (var n=0; n<newRow[0].length; n++) {
returnData.push(newRow[0][n].replaceAll('\n','|'));
}
returnData = [returnData];
return ContentService.createTextOutput(JSON.stringify(returnData));
}
Est ce que quelqu'un peut m'aider à résoudre ce problème ?
my guess is your error occurs, because you are using this string (marked in yellow), which contains the ampersand character & (see my red arrow), and that character usually represents the beginning of a new tag
so the question is, why are you uploading the complete url to the image and not only the id of the image (which is the part after ampersand character & (marked with the red arrow)? we talked about that in detail in one of your other threads...
As the beginning of the string is always the same, it not really is necessary to store the complete string, you easily can create the complete string when you need it
in your Get request you are uploading the complete url, see your Do it result my suggestion is to remove the constant part of the string and upload only the image id
Taifun
J'ai suivi votre suggestion, effectivement j'ai que l'ID de l'image et je n'ai pas le message d'erreur. Mais l'image ne s'affiche pas dans l'application (c'est pour cela que j'avais l'URL)
Si je remets l'URL dans Get pour récupérer et afficher l'image dans l'application , est ce qu'on peut pas modifier le script pour éviter ce message d'erreur ?
où mettre "UriEncode" dans les blocs ?