В форме стека я должен иметь возможность передавать список в форму в качестве параметра и из этого списка создавать флажки или раскрывающиеся меню, которые пользователь может выбрать и которые сохраняются в базе данных стека и отправляются в интеграциюкак и во всех других областях.Вот пример того, что я хотел бы отправить:
http://theformurl? List = option1, option2, option3, option4
Отсюда япытаясь использовать вставку кода в (или смесь) заголовка, нижнего колонтитула или встраивания кода для создания нового поля при загрузке, которое выглядит и действует как все остальные поля.
Я возилсяс подходом Дженны Молби к динамическому изменению html с параметрами URL, найденными здесь:
https://jennamolby.com/tutorial-examples/dynamic-content-based-on-a-url-parameter-example/
Но пока не повезло.В настоящее время мне не удалось заставить динамический текст заполнять форму, не говоря уже о поле формы, которое затем обращается к внутреннему интерфейсу стека.
Это выполнимо, и если да, может ли кто-нибудь порекомендовать подход?или нить, которую можно потянуть, чтобы выяснить это?
- обновление
Благодаря предложению Эрика, я смог продвинуться на полпути.Этот код в нижнем колонтитуле может установить флажок, который вы уже вставили в форму по идентификатору.Это заменит этот флажок на значения, которые вы отправляете в URL.Но выбранные элементы не попадают в Formstack при отправке.
<script>
document.addEventListener("DOMContentLoaded", function(event) {
var url = new URL(window.location.href);
//Put field number in var fieldNumber
var fieldNumber = "12345678";
//Put the parameter you're searching for in var param
var param = "parameter name";
//if you want a prefix before your values in the checkbox, use prefix
var prefix = "Prefix ";
//Put the question you want to ask here.
var theQuestion = "Which of the values that came through the url will you select?";
//What should the single checkbox say if no parameters are passed?
var theDefaultBox = "No variables were contained in the parameter.";
var theField = "field" + fieldNumber;
var theFieldID = "fsCell"+fieldNumber;
var values = url.searchParams.get(param).split(",");
var theFieldHTMLfront = "";
if (values) {theFieldHTMLfront = "<fieldset id=\"label"+fieldNumber+"\"><legend class=\"fsLabel fsLabelVertical\"><span>"+theQuestion+"</span></legend><div class=\"fieldset-content\"><label class=\"fsOptionLabel vertical\" for=\""+theField+"_1\"><input type=\"checkbox\" id=\""+theField+"_1\" name=\""+theField+"[]\" value=\""+ prefix + values[0] + "\" class=\"fsField vertical\" />"+ prefix + values[0] + "</label>";} else {theFieldHTMLfront = "<fieldset id=\"label"+fieldNumber+"\"><legend class=\"fsLabel fsLabelVertical\"><span>Which values may have observed or have knowledge about this event?</span></legend><div class=\"fieldset-content\"><label class=\"fsOptionLabel vertical\" for=\""+theField+"_1\"><input type=\"checkbox\" id=\""+theField+"_1\" name=\""+theField+"[]\" value=\""+theDefaultBox+"\" class=\"fsField vertical\" />test</label>";}
var theFieldHTMLback = "</div></fieldset>";
for (var i = 1; i < values.length; i++) {
theFieldHTMLfront += "<label class=\"fsOptionLabel vertical\" for=\""+theField+(i+1)+"\"><input type=\"checkbox\" id=\""+theField+(i+1)+"\" name=\""+theField+"[]\" value=\""+prefix+values[i]+"\" class=\"fsField vertical\" />"+ prefix + values[i] + "</label>";
}
var theFieldHTML = theFieldHTMLfront + theFieldHTMLback;
document.getElementById(theFieldID).innerHTML = theFieldHTML;
});
</script>
Есть мысли о том, как заставить его общаться с Formstack при отправке?