Google sheet lire et envoyer les données

replace global reponse with this:

image

c'est fait et le message d'erreur est partit mais je n'arrive toujours pas à lire les données , juste à les envoyer dans la sheet

In your script you return a stringified JSON array of values.

In your app, you need to convert this "string" back to an array (AI2 list)

To do this you can use:

then you can get the values from the list in recordData

j'ai fais la modification mais je n'arrive toujours pas à lire les données !

These:

image

should all be obtenir recordData

If that doesn't work, set recordData to a label and provide the output.

je suis totalement perdu , car ça ne fonctionne pas et quand je clique sur le bouton22 la page (arrangement_infoenfant1) ne s'ouvre pas .

If I get time this evening, I will put together a working example....

super merci , car après je veux pouvoir modifier les données :smirk:

Hmmm, needed more work as a standalone script...

BLOCKS

SCRIPT

var ss = SpreadsheetApp.openById('1anRffATqaLdmm9uacIThgLKdmEF_mVvmEm12zwu3ZGY');
var sh = ss.getSheetByName('reports');

function doGet(e) {
if (e.parameter.func == "WriteReadReport") {
  var nom = e.parameter.nom;
  var date = e.parameter.date;
  var repas = e.parameter.repas ;
  
  sh.appendRow([nom,repas,date]);
  SpreadsheetApp.flush();

  var ref = [];
  var rg = sh.getDataRange().getValues();
  for (var i=0;i<rg.length;i++) {
    if (rg[i][0] == nom) {
      ref.push(rg[i][0]);
      ref.push(rg[i][1]);
      ref.push(Utilities.formatDate(rg[i][2], "GMT", 'YYYY-MM-dd'));
    }
  }
  return ContentService.createTextOutput(JSON.stringify(ref)).setMimeType(ContentService.MimeType.JSON);
}
}

SHEET

image

SCREEN

image

I have shown the Web1.GotText output in a label. You should be able to use the jsontextencode block to convert the responseContent back into an AI2 list, and then extract each element.

If you have the variables rg or ref elsewhere in your script as global variables, then use another variable name for these, that is not declared elsewhere.

Make sure you run your script in the script editor, to ensure that permissions are set.

j'ai essayé beaucoup de solution mais ça ne fonctionne pas.

Voilà tout mes blocs

et mon script

function doGet(e) {

var ss = SpreadsheetApp.openById('1BSUDHn08h6YlrtgfeoQEVhjdvNp3rGPxZiTVq9r');
var sheet = ss.getSheetByName("Sheet1");
var sh = ss.getSheetByName("Sheet2");
var nom = e.parameter.nom ;
var motdepasse = e.parameter.motdepasse ;
var msg;

if ( e.parameter.func == "register" ) {
sheet.appendRow([nom,motdepasse]);
return ContentService.createTextOutput("Nouveau compte");
}

else if ( e.parameter.func == "testLogin" ) {
var msg = "Information incorrecte";
var loginData = sheet.getDataRange().getValues();
for ( var i = 0; i < loginData.length; i++ ) {
if ( nom == loginData[i][0] && motdepasse == loginData[i][1] ) {
msg = "connecté";
}
}
return ContentService.createTextOutput(msg);
}

else if ( e.parameter.func == "supprimer" ) {
var loginData = sheet.getDataRange().getValues();
for (var i = 0; i < loginData.length; i++ ) {
if ( nom == loginData[i][0] && motdepasse == loginData[i][1] ) {
msg = "compte supprimé";
sheet.deleteRow(i+1);
}
}
var reportData = sh.getDataRange().getValues();
for (var i = 0; i < reportData.length; i++ ) {
if ( nom == reportData[i][0] ) {
msg = " compte supprimé";
sh.deleteRow(i+1);
}
}
return ContentService.createTextOutput(msg);
}

if (e.parameter.func == "WriteReadReport") {
var nom = e.parameter.nom ;
var date = e.parameter.date ;
var repas = e.parameter.repas ;
var change = e.parameter.change ;
var sieste = e.parameter.sieste ;
var soins = e.parameter.soins ;
var transmission = e.parameter.transmission ;
sh.appendRow([nom,date,repas,change,sieste,soins,transmission]);
SpreadsheetApp.flush();
var ref = ;
var rg = sh.getDataRange().getValues();
for (var i=0;i<rg.length;i++) {
if (rg[i][0] == nom) {
ref.push(rg[i][0]);
ref.push(rg[i][1]);
ref.push(Utilities.formatDate(rg[i][2], "GMT", 'YYYY-MM-dd'));
}
}

return ContentService.createTextOutput(JSON.stringify(ref)).setMimeType(ContentService.MimeType.JSON);

}

}

OK

You did not full understand my example

  1. var ref = ; should be var ref = []; (square brackets to create an array variable)

  2. in your version of the script:

rg[i][0] = nom
rg[i][1] = date - so this needs to be formatted > Utilities.formatDate(rg[i][1], "GMT", 'YYYY-MM-dd')
rg[i][2] = repas
rg[i][3] = change
rg[i][4] = sieste
rg[i][5] = soins
rg[i][6] = transmission

amend your script accordingly

comme ça ?

if (e.parameter.func == "WriteReadReport") {
var nom = e.parameter.nom ;
var date = e.parameter.date ;
var repas = e.parameter.repas ;
var change = e.parameter.change ;
var sieste = e.parameter.sieste ;
var soins = e.parameter.soins ;
var transmission = e.parameter.transmission ;
sh.appendRow([nom,date,repas,change,sieste,soins,transmission]);
SpreadsheetApp.flush();
var ref = [ ] ;
var rg = sh.getDataRange().getValues();
for (var i=0;i<rg.length;i++) {
if (rg[i][0] == nom) {
ref.push(rg[i][0]);
ref.push(rg[i][1]>Utilities.formatDate(rg[i][1], "GMT", 'YYYY-MM-dd'));
ref.push(rg[i][2]);
ref.push(rg[i][3]);
ref.push(rg[i][4]);
ref.push(rg[i][5]);
ref.push(rg[i][6]);
}

oui, il regarde bien

j'ai essayé et ça ne fonctionne pas je n'arrive pas à lire les données dans chaque label
(les données prenom dans label prenom)
(les données date dans le label date)
(les données repas dans le label repas) ..........

Sorry, the line for date needs to be:

ref.push(Utilities.formatDate(rg[i][1], "GMT", 'YYYY-MM-dd'));

Try returning all the data to a single label, then you can see what is being returned in total

ok la date c'est bon.
j'ai renvoyé les données sur une étiquette et ça ne fonctionne pas , quand je clique sur le bouton il y a une notification qui affiche les données que j'ai écrite , et l'écran ne change toujours pas.

What do you see in the label (which should contain the response Content) ?

l'étiquette est vide

Your blocks are like this ?

image

oui
comme dans ceux que j'ai montré plus haut , et j'ai mis 1 label
je vais remettre mes blocs modifiés