Loop не имеет какой-либо области в PHP. переменная просто доступна вне цикла.
просто echo
вне цикла;
echo $var;
В ваших скриптах я думаю, что ваш php скрипт работает, а Google Apps Script требуется немного изменить. Так как насчет этой модификации?
Когда объект JSON ({"key1": "value1", "key2": "value2"}
) отправляется в Web Apps в виде запроса POST, e
of [ 115] становится следующим.
{
"parameter": {},
"contextPath": "",
"contentLength": 36,
"queryString": "",
"parameters": {},
"postData": {
"type": "application/json",
"length": 36,
"contents": "{\"key1\": \"value1\", \"key2\": \"value2\"}",
"name": "postData"
}
}
Таким образом, когда вы хотите извлечь значения из объекта, объект должен быть проанализирован, как var postData = JSON.parse(e.postData.contents)
. Кажется, что хотя данные отправляются как application/json
, объект не анализируется автоматически.
По поводу строки if (headers[i] == "Timestamp"){
в вашем образце нет изображения Timestamp
. Я думал, что это может быть Date
.
Пожалуйста, измените его следующим образом.
From:var row = [];
// loop through the header columns
for (i in headers){
if (headers[i] == "Timestamp"){ // special case if you include a 'Timestamp' column
row.push(new Date());
} else { // else use header name to get data
row.push(e.parameter[headers[i]]);
}
}
To: var postData = JSON.parse(e.postData.contents);
var row = headers.map(function(e) {return e == "Date" ? new Date() : postData[e]});
При запуске вашего php-скрипта значения помещаются в электронную таблицу следующим образом.
Если я неправильно понял ваш вопрос, и это был не тот результат, который вы хотите, я приношу свои извинения.