Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 24.07.2024, 18:22
Интересующийся
Отправить личное сообщение для ptihka Посмотреть профиль Найти все сообщения от ptihka
 
Регистрация: 20.07.2024
Сообщений: 13

Не понимаю чем ответ в виде JSON строки такой ужасный? На что нужно изменить формат ответа?
function scan1(){
	scan = new XMLHttpRequest();	
            scan.open("POST", '/Scan_network', true);
            scan.send();	
}

Тут то ничего замысловатого нет , я ничего не пытаюсь перехватывать , я отправляю запрос на контроллер там обработался запрос и вместе с ответом отправил переменнуб обратно на страницу , так вот эту переменную мне и нужно взять и уже распарсить в выпадающий список по такому принципу как предложил KSA
Ответить с цитированием
  #22 (permalink)  
Старый 24.07.2024, 19:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

ptihka,
https://learn.javascript.ru/xmlhttprequest читать про метод onload и в него ставить код KSA, уточнив под свои данные. также читать про Fetch

может кто-то поможет скомпоновать в вашу function scan1 всё это.
Ответить с цитированием
  #23 (permalink)  
Старый 24.07.2024, 20:48
Интересующийся
Отправить личное сообщение для ptihka Посмотреть профиль Найти все сообщения от ptihka
 
Регистрация: 20.07.2024
Сообщений: 13

Ребят всем огромное спасибо , Nexus Ваш код сразу заработал , как раз то что нужно было ,надо только разобраться как удалить все поля 'option' при повторном нажатии кнопки Скан а то поля добавляются до бесконечности , рони Вам спасибо за интересные ссылки , если бы на них попал срезу может бы и сам разобрался , очень позновательно , ну и все кто помогал ОГРОМНОЕ спасибо!!!!
Ответить с цитированием
  #24 (permalink)  
Старый 25.07.2024, 09:46
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Сообщение от ptihka
Не понимаю чем ответ в виде JSON строки такой ужасный?
json json'у рознь.
У вас данные идеально ложатся в массив объектов без лишних танцев с бубном, однако вы все в один объект затолкали.
Данные в таком виде плохо читаемы - это раз; два - из-за такого формата контроллеру отдельно пришлось указывать кол-во найденных сетей в поле «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>
Ответить с цитированием
  #25 (permalink)  
Старый 25.07.2024, 11:14
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Nexus, это обычный АСУТПшный подход...
Они заводят N-ное количество переменных, с запасом (t0, t1, t2, ..., t15). Типа, больше все равно не будет! (с)
Потом с этим и работают.
Ответить с цитированием
  #26 (permalink)  
Старый 25.07.2024, 18:26
Интересующийся
Отправить личное сообщение для ptihka Посмотреть профиль Найти все сообщения от ptihka
 
Регистрация: 20.07.2024
Сообщений: 13

Я сразу написал то в 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 может я конечно не прав. Скажиет может есть какой то вариант отправки информации постоянно не только в ответе на запрос? Ну типа просто постоянная двусторонняя связь.

Последний раз редактировалось ptihka, 25.07.2024 в 18:29.
Ответить с цитированием
  #27 (permalink)  
Старый 25.07.2024, 18:54
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Сообщение от ptihka
либо текс либо JSON
А чем json не текст? JSON - по сути та же строка, просто имеет свой формат.

Сообщение от ptihka
это код с контроллера и тут нет варианта отправки массива
Это больше на js похоже, нежели на cpp. И как этот код вообще связан с возможными для возврата данными? Больше похоже на подбор mime type'а файла по его имени.

Сообщение от ptihka
Скажиет может есть какой то вариант отправки информации постоянно не только в ответе на запрос?
Смотрите в сторону websocket.
Ответить с цитированием
  #28 (permalink)  
Старый 02.08.2024, 09:14
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от Linka
В <title> текст меняется, но в <legend> нет. Можете подсказать, как это исправить?
Это разводилово какое-то или что?
Какая еще top search?

<fieldset>
	<legend>Тест</legend>
	<button>Ок</button>
</fieldset>

<script>
document.querySelector('button').addEventListener('click', _ => {
	document.querySelector('legend').textContent = (new Date).toISOString()
})
</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загадочное явление с CSS filter voraa (X)HTML/CSS 5 06.02.2023 10:28
Изменение класса Div-ов по клику... Torch`Ok Events/DOM/Window 22 12.09.2012 16:43
Отследить клик по дочернему объекту AllanZ jQuery 3 05.09.2012 12:38
Вопрос: И опять про offsetLeft... sigurd Общие вопросы Javascript 11 04.10.2010 14:06
Можно ли одновременно изменить фон и текст в поле? Bad Request Events/DOM/Window 12 25.09.2008 23:10