• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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.
 
Сверху Снизу