Не понимаю чем ответ в виде JSON строки такой ужасный? На что нужно изменить формат ответа?
function scan1(){
scan = new XMLHttpRequest();
scan.open("POST", '/Scan_network', true);
scan.send();
}
Тут то ничего замысловатого нет , я ничего не пытаюсь перехватывать , я отправляю запрос на контроллер там обработался запрос и вместе с ответом отправил переменнуб обратно на страницу , так вот эту переменную мне и нужно взять и уже распарсить в выпадающий список по такому принципу как предложил KSA |
ptihka,
https://learn.javascript.ru/xmlhttprequest читать про метод onload и в него ставить код KSA, уточнив под свои данные. также читать про Fetch может кто-то поможет скомпоновать в вашу function scan1 всё это. |
Ребят всем огромное спасибо , Nexus Ваш код сразу заработал , как раз то что нужно было ,надо только разобраться как удалить все поля 'option' при повторном нажатии кнопки Скан а то поля добавляются до бесконечности :victory: , рони Вам спасибо за интересные ссылки , если бы на них попал срезу может бы и сам разобрался , очень позновательно , ну и все кто помогал ОГРОМНОЕ спасибо!!!!
|
Цитата:
У вас данные идеально ложатся в массив объектов без лишних танцев с бубном, однако вы все в один объект затолкали. Данные в таком виде плохо читаемы - это раз; два - из-за такого формата контроллеру отдельно пришлось указывать кол-во найденных сетей в поле «Nomber»; три - зачем хранить данные в неправильном виде, когда можно сделать это правильно?
<script>
function fetchAvailableNetworks() {
return fetch('/Scan_network', {method: 'post'})
.then(res => res.json())
.then(obj => {
tmp1.innerHTML = '';
for (let i = 0; i < +obj.Nomber; i++) {
const o = document.createElement('option');
o.value = obj['дБм' + i];
o.textContent = obj['Name' + i];
tmp1.insertAdjacentElement('beforeend', o);
}
return obj;
});
}
</script>
<select id="tmp1"></select>
<button type="button" onclick="fetchAvailableNetworks()">Fetch networks</button>
|
Nexus, это обычный АСУТПшный подход... :D
Они заводят N-ное количество переменных, с запасом (t0, t1, t2, ..., t15). Типа, больше все равно не будет! (с) Потом с этим и работают. |
Я сразу написал то в JS и HTML ноль , я то и с контроллерами на C+ только начал работать , до этого писал на бесике и недавно прошол курс С+ , Nexus если четно я не понимаю Вас немного , разве я погу отправить массив данных с контроллера и он будет принят на WEB странице? Просто там при отправке ответа есть несколько вариантов формирования строки.
if(filename.endsWith(".html")) return "text/html";
else if (filename.endsWith(".json")) return "application/json";
else if (filename.endsWith(".css")) return "text/css";
else if (filename.endsWith(".js")) return "application/javascript";
else if (filename.endsWith(".png")) return "image/png";
else if (filename.endsWith(".svg")) return "image/svg";
else if (filename.endsWith(".gif")) return "image/gif";
else if (filename.endsWith(".jpg")) return "image/jpeg";
else if (filename.endsWith(".ico")) return "image/x-icon";
else if (filename.endsWith(".xml")) return "text/xml";
else if (filename.endsWith(".pdf")) return "application/x-pdf";
else if (filename.endsWith(".zip")) return "application/x-zip";
else if (filename.endsWith(".gz")) return "application/x-gzip";
это код с контроллера и тут нет варианта отправки массива , либо текс либо JSON может я конечно не прав. Скажиет может есть какой то вариант отправки информации постоянно не только в ответе на запрос? Ну типа просто постоянная двусторонняя связь. |
Цитата:
Цитата:
Цитата:
|
Цитата:
Какая еще top search? :D
<fieldset>
<legend>Тест</legend>
<button>Ок</button>
</fieldset>
<script>
document.querySelector('button').addEventListener('click', _ => {
document.querySelector('legend').textContent = (new Date).toISOString()
})
</script>
|
| Часовой пояс GMT +3, время: 16:24. |