Тема: checkbox на ajax
Показать сообщение отдельно
  #9 (permalink)  
Старый 29.03.2019, 19:23
Новичок на форуме
Отправить личное сообщение для djsidmsps Посмотреть профиль Найти все сообщения от djsidmsps
 
Регистрация: 25.03.2019
Сообщений: 8

А ларчик то просто открывался-сел сегодня за 15 минут решил задачу.
Переменную ch1 сделал глобальной и в function handleServerResponse() сравниваю ее с тем что в message.Короче все четко,как надо работает,но на оптимальность не претендую.
В очередной раз убеждаюсь что нужно давать себе отдохнуть,а не долбить одно и то же..)) Всем спасибо.
<html><head>
  <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  <title>Lignt_Control</title>
 
<SCRIPT>

var ch1;
var xmlHttp=createXmlHttpObject();

function createXmlHttpObject(){
 if(window.XMLHttpRequest){
    xmlHttp=new XMLHttpRequest();
 }else{
    xmlHttp=new ActiveXObject('Microsoft.XMLHTTP');
 }
 return xmlHttp;
}

function process(){    // Функция обращается к xml каждую секунду
 if(xmlHttp.readyState==0 || xmlHttp.readyState==4){
   xmlHttp.open('PUT','xml',true);
   xmlHttp.onreadystatechange=handleServerResponse;
   xmlHttp.send(null);
 }
 setTimeout('process()',1000);
}


function handleServerResponse(){ // Функция разбирает xml по тегам
 if(xmlHttp.readyState==4 && xmlHttp.status==200){
   xmlResponse=xmlHttp.responseXML;
   
   xmldoc = xmlResponse.getElementsByTagName('lignt_on_off');
   message = xmldoc[0].firstChild.nodeValue;
   if(message==ch1){
      checkbox.disabled = false;  
     if(message==true){                                      
       document.getElementById('checkbox').checked = true;
     }
     if(message==false){
       document.getElementById('checkbox').checked = false;
     }
   }
   
  }
 }
 


function Ligntonoff() {  // Отправка состояния чекбокса на сервер
    if(document.getElementById('checkbox').checked ==true) {
    ch1=1;
    }else{
    ch1=0;
    }
    server = "/Ligntonoff?state=" + ch1;
    request = new XMLHttpRequest();
    request.open("GET", server, true);
    request.send(); 
    checkbox.disabled = true;
    checkbox.checked =false;  
}

</SCRIPT>
  
  
</head>

<BODY onload="process();">   


   <label> Принудительное освешение: &nbsp; <input id="checkbox" type="checkbox" onclick="Ligntonoff()"/></label>    
   
   </body></html>

Последний раз редактировалось djsidmsps, 29.03.2019 в 19:42.
Ответить с цитированием