FormStack. DDL предоставил данные через API. Когда значение выбранного JSON PARSED & отображается на экране в соответствJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 FormStack. DDL предоставил данные через API. Когда значение выбранного JSON PARSED & отображается на экране в соответств

Сообщение Anonymous »

У меня есть форма FormStack, в которой используется встроенный код JavaScript, чтобы вызвать API и заполнять раскрывающийся список. Как только я выбираю значение, соответствующие данные JSON анализируются и отображаются на экране в каждом поле, как Empname, Empemail, Supervisoremail, Empfirstname, EmplastName, SuperSorid, Empid, DeptName. Однако, как только я отправлю форму, введенные данные из выбора не сохраняются в FormStack и не включены в отправленную электронную почту. Если я вручную ввожу в инъекционные поля, сохранены значения. Ищу помощь при исправлении. < /P>
```

document.addEventListener("DOMContentLoaded", async function () {
var getLocationHost = window.location.host;
let apiURL;

if (getLocationHost.includes("test")) {
apiURL = 'hidden for asking help on stackoverflow';
} else if (getLocationHost.includes("dev")) {
apiURL = 'hidden for asking help on stackoverflow';
} else if (getLocationHost.includes("intg")) {
apiURL = 'hidden for asking help on stackoverflow';
} else if (getLocationHost.includes("uat")) {
apiURL = 'hidden for asking help on stackoverflow';
} else if (getLocationHost.includes("stage")) {
apiURL = 'hidden for asking help on stackoverflow';
} else {
apiURL = 'hidden for asking help on stackoverflow';
}

// Field IDs in Formstack
const DROPDOWN_FIELD_ID = 'field180567125';
const EMP_NAME_FIELD_ID = 'field180567127';
const EMP_EMAIL_FIELD_ID = 'field180626437';
const SUPERVISOR_EMAIL_FIELD_ID = 'field180567128';
const EMP_FIRST_NAME_FIELD_ID = 'field180567129';
const EMP_LAST_NAME_FIELD_ID = 'field180567130';
const SUPERVISOR_ID_FIELD_ID = 'field180567519';
const EMP_ID_FIELD_ID = 'field180567520';
const DEPT_NAME_FIELD_ID = 'field180567695';

try {
const response = await fetch(apiURL);
if (!response.ok) throw new Error("Error fetching employee data");

let employeeData = await response.json();

// Sort employee data
employeeData.sort((a, b) => a.empNameAndDept.localeCompare(b.empNameAndDept,
undefined, { sensitivity: 'base' }));

const dropdown = document.getElementById(DROPDOWN_FIELD_ID);
if (!dropdown) return console.error("Dropdown field not found");

// Populate dropdown
dropdown.innerHTML = "";
let defaultOption = new Option("Select an employee", "");
dropdown.add(defaultOption);

employeeData.forEach(employee => {
let option = new Option(employee.empNameAndDept, String(employee.empId));
dropdown.add(option);
});

// Change event listener
dropdown.addEventListener("change", function () {
setTimeout(() => {
const selectedEmpId = String(dropdown.value);
const selectedEmployee = employeeData.find(emp => String(emp.empId) ===
selectedEmpId);

if (selectedEmployee) {
document.getElementById(EMP_NAME_FIELD_ID).value =
selectedEmployee.empName || "";
document.getElementById(EMP_EMAIL_FIELD_ID).value =
selectedEmployee.empEmail || "";
document.getElementById(SUPERVISOR_EMAIL_FIELD_ID).value =
selectedEmployee.supervisorEmail || "";
document.getElementById(EMP_FIRST_NAME_FIELD_ID).value =
selectedEmployee.empFirstName || "";
document.getElementById(EMP_LAST_NAME_FIELD_ID).value =
selectedEmployee.empLastName || "";
document.getElementById(SUPERVISOR_ID_FIELD_ID).value =
selectedEmployee.SupervisorId || "";
document.getElementById(EMP_ID_FIELD_ID).value =
selectedEmployee.empId || "";
document.getElementById(DEPT_NAME_FIELD_ID).value =
selectedEmployee.deptName || "";
}
}, 100);
});
} catch (error) {
console.error("Error fetching or populating employee data:", error);
}
});

< /code>




Подробнее здесь: https://stackoverflow.com/questions/794 ... rsed-displ
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»