• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

протокол SSDP, HTML, Java script

Добрый день. Изучил всю информацию предоставленную Сергеем https://esp8266-arduinoide.ru/tag/ssdp/. Всё работает. Замечательно. Но, мне необходимо для своего проекта разобраться с такими "элементами" на HTML странице как
Код:
<input type="checkbox">
<form method="get">
в материалах Сергея рассматривается работа с:
Код:
<input class="text">
Моя проблема в том что при перезагрузке страницы информация записанная в JSON-файл не влияет на содержимое страницы. Понимаю что обрабатывается не правильно, но не могу понять ГДЕ?
Код:
<input type="checkbox" style="display:none" id="Socket1Switch" onClick="Function_Socket1Switch(this)"
далее функция обработки:
Код:
    function Function_Socket1Switch(submit) {
        RequestContent = "/Socket1Switch?Socket1Switch=" +
        document.getElementById('Socket1Switch').checked ;           
        request = new XMLHttpRequest();
        request.open("GET", RequestContent, true);
        request.send();
        save_status(submit,request);       
        document.getElementById('Socket1Switch').innerHTML = document.getElementById('Socket1Switch').checked;           
    }
Смотрю в браузере "исследовать элемент/network". Смотрю запросы "Socket1Switch?Socket1Switch=true".
Далее проверяю формирование JSON в скетче:
Код:
 String json = "{";
 json += "\"Socket1\":\"";    json += SSDP_Socket1 [0];
 json += "\",\"Socket2\":\""; json += SSDP_Socket2 [0];
 if ( SSDP_Socket1 [1] == "0" ) { json += "\",\"Socket1Switch\":\""; json += "false"; }
 if ( SSDP_Socket1 [1] == "1" ) { json += "\",\"Socket1Switch\":\""; json += "true"; }
 json += "\"}";
Проверяю в мониторе порта как сформировался:
Код:
{"Socket1":"empty     ","Socket2":"empty     ","Socket1Switch":"true"}
Но при перезагрузке страницы, состояние не сохраняется (если я переключил его в true, после обновления страницы он опять false.)
Имена ("empty") - сохраняются в полях <input class="text">
Начал разбираться в функциях. Есть функция save_status(submit,request). Там идет речь о поле "value":
Код:
function save_status(submit,request){
 old_submit = submit.value;
 request.onreadystatechange = function() {
  if (request.readyState != 4) return;
  submit.value = request.responseText;
  setTimeout(function(){
   submit.value=old_submit;
   submit_disabled(false);
  }, 1000);
 }
 submit.value = 'Подождите...';
 submit_disabled(true);
}
Поменял "value" на "checked":
Код:
function save_checked(submit,request){
 old_submit = submit.checked;
 request.onreadystatechange = function() {
  if (request.readyState != 4) return;
  submit.checked = request.responseText;
  setTimeout(function(){
   submit.checked=old_submit;
   submit_disabled(false);
  }, 1000);
 }
 //submit.checked = 'Подождите...';
 submit_disabled(true);
}
Естественно заменил вызов функции function save_status(submit,request) на function save_checked(submit,request).
Ничего не изменилось. Помогите разобраться что я где забываю изменить? И похожая проблема у <form method="get">. Мне бы его тоже хотелось бы обрабатывать и сохранять в него значения из ESP.
 
Сверху Снизу