by Anonymous » 09 Apr 2025, 04:49
Ich versuche ein Google -Formular zu erstellen, das ein Google -Blatt bevölkert. Ich habe das Formular "Fitnessstudio Form A" und "Fitnessform B", das funktioniert, aber A wird nicht automatisch zu b.i eingeleitet. Ich habe ein Makro, das einen Link generiert, und dieser Link wird in der letzten Zeile und Spalte eines bestimmten Blattes auf Google Sheets gefüllt. Ich wollte diesen Link dynamisch ziehen und habe dann nur das Blatt eine Umleitung zu dort, aber es funktioniert nicht.
Code: Select all
function onFormSubmit(e) {
generatePrefilledLinks();
}
function generatePrefilledLinks() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const data = sheet.getDataRange().getValues();
const headers = data[0];
const dateIndex = headers.indexOf("Workout Date");
const typeIndex = headers.indexOf("Workout Type");
if (dateIndex === -1 || typeIndex === -1) {
throw new Error("Headers 'Workout Date' and/or 'Workout Type' not found.");
}
const baseURL = "https://docs.google.com/forms/d/e/1FAIpQLScojqj2IUfZSpyOATMsJKuTbr_iSGJ3NginEBY4wCwWddp8-A/viewform";
const linkCol = headers.length + 1;
sheet.getRange(1, linkCol).setValue("Prefilled Exercise Log Link");
const lastRowIndex = data.length - 1;
const workoutDate = encodeURIComponent(data[lastRowIndex][dateIndex]);
const workoutType = encodeURIComponent(data[lastRowIndex][typeIndex]);
const prefillURL = `${baseURL}?entry.1754835796=${workoutDate}&entry.2111064850=${workoutType}`;
sheet.getRange(lastRowIndex + 1, linkCol).setValue(prefillURL);
}
< /code>
"Wie Sie sehen können, fülle ich in Form eines Formulars in Form des" vorgefüllten Übungs -Log -Link -Headers ". Ich erhalte einen leeren Bildschirm aktueller Ausgabebildschirm < /p>
, bevor ich auf der anderen Seite ungültige Werte erhielt, aber der Code, den ich habe, gibt den richtigen Link an. < /P>
function doGet() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const data = sheet.getDataRange().getValues();
if (data.length < 2) {
return HtmlService.createHtmlOutput("No responses found.");
}
const lastRow = data.length - 1; // last row (0-indexed)
const lastCol = data[0].length - 1; // last column (0-indexed)
const lastValue = data[lastRow][lastCol].trim(); // Trim any leading or trailing spaces
// Log for debugging purposes
Logger.log("Last value: " + lastValue);
// Ensure the last value is a valid URL and redirect directly
const htmlContent = `
Redirecting to the workout log...
`;
// Return HTML content
return HtmlService.createHtmlOutput(htmlContent);
}
"
Linkcode abrufen>
Ich versuche ein Google -Formular zu erstellen, das ein Google -Blatt bevölkert. Ich habe das Formular "Fitnessstudio Form A" und "Fitnessform B", das funktioniert, aber A wird nicht automatisch zu b.i eingeleitet. Ich habe ein Makro, das einen Link generiert, und dieser Link wird in der letzten Zeile und Spalte eines bestimmten Blattes auf Google Sheets gefüllt. Ich wollte diesen Link dynamisch ziehen und habe dann nur das Blatt eine Umleitung zu dort, aber es funktioniert nicht.[code]function onFormSubmit(e) {
generatePrefilledLinks();
}
function generatePrefilledLinks() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const data = sheet.getDataRange().getValues();
const headers = data[0];
const dateIndex = headers.indexOf("Workout Date");
const typeIndex = headers.indexOf("Workout Type");
if (dateIndex === -1 || typeIndex === -1) {
throw new Error("Headers 'Workout Date' and/or 'Workout Type' not found.");
}
const baseURL = "https://docs.google.com/forms/d/e/1FAIpQLScojqj2IUfZSpyOATMsJKuTbr_iSGJ3NginEBY4wCwWddp8-A/viewform";
const linkCol = headers.length + 1;
sheet.getRange(1, linkCol).setValue("Prefilled Exercise Log Link");
const lastRowIndex = data.length - 1;
const workoutDate = encodeURIComponent(data[lastRowIndex][dateIndex]);
const workoutType = encodeURIComponent(data[lastRowIndex][typeIndex]);
const prefillURL = `${baseURL}?entry.1754835796=${workoutDate}&entry.2111064850=${workoutType}`;
sheet.getRange(lastRowIndex + 1, linkCol).setValue(prefillURL);
}
< /code>
"Wie Sie sehen können, fülle ich in Form eines Formulars in Form des" vorgefüllten Übungs -Log -Link -Headers ". Ich erhalte einen leeren Bildschirm aktueller Ausgabebildschirm < /p>
, bevor ich auf der anderen Seite ungültige Werte erhielt, aber der Code, den ich habe, gibt den richtigen Link an. < /P>
function doGet() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const data = sheet.getDataRange().getValues();
if (data.length < 2) {
return HtmlService.createHtmlOutput("No responses found.");
}
const lastRow = data.length - 1; // last row (0-indexed)
const lastCol = data[0].length - 1; // last column (0-indexed)
const lastValue = data[lastRow][lastCol].trim(); // Trim any leading or trailing spaces
// Log for debugging purposes
Logger.log("Last value: " + lastValue);
// Ensure the last value is a valid URL and redirect directly
const htmlContent = `
Redirecting to the workout log...
`;
// Return HTML content
return HtmlService.createHtmlOutput(htmlContent);
}
[/code]
"
Linkcode abrufen>