Добрый день. Изучил всю информацию предоставленную Сергеем https://esp8266-arduinoide.ru/tag/ssdp/. Всё работает. Замечательно. Но, мне необходимо для своего проекта разобраться с такими "элементами" на HTML странице как
в материалах Сергея рассматривается работа с:
Моя проблема в том что при перезагрузке страницы информация записанная в JSON-файл не влияет на содержимое страницы. Понимаю что обрабатывается не правильно, но не могу понять ГДЕ?
далее функция обработки:
Смотрю в браузере "исследовать элемент/network". Смотрю запросы "Socket1Switch?Socket1Switch=true".
Далее проверяю формирование JSON в скетче:
Проверяю в мониторе порта как сформировался:
Но при перезагрузке страницы, состояние не сохраняется (если я переключил его в true, после обновления страницы он опять false.)
Имена ("empty") - сохраняются в полях <input class="text">
Начал разбираться в функциях. Есть функция save_status(submit,request). Там идет речь о поле "value":
Поменял "value" на "checked":
Естественно заменил вызов функции function save_status(submit,request) на function save_checked(submit,request).
Ничего не изменилось. Помогите разобраться что я где забываю изменить? И похожая проблема у <form method="get">. Мне бы его тоже хотелось бы обрабатывать и сохранять в него значения из ESP.
Код:
<input type="checkbox">
<form method="get">
Код:
<input class="text">
Код:
<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;
}
Далее проверяю формирование 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"}
Имена ("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);
}
Код:
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);
}
Ничего не изменилось. Помогите разобраться что я где забываю изменить? И похожая проблема у <form method="get">. Мне бы его тоже хотелось бы обрабатывать и сохранять в него значения из ESP.