Задать вопрос
  • Как вывести данные из функции в Jquery?

    zkrvndm
    @zkrvndm
    Архитектор решений
    У тебя console.log отрабатывает раньше, чем запускается функция колбек внутри обработчика.

    Вот ты вставил этот код в консоль и произошло 2 вещи:
    1. Был установлен обработчик на движение мыши
    2. Была выведена надпись в консоли

    Функция внутри обработчика сработает уже после вывода уведомления и лишь тогда, когда ты подвигаешь мышью.
    Ответ написан
    Комментировать
  • Как отправить и получить данные (не formdata) XMLHttpRequest?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Попробуйте так:
    async function send() {
    	
    	// Создаем форму с произвольными данными:
    	
    	var formData = new FormData();
    	formData.append('param1', 'Значение param1');
    	formData.append('param2', 'Значение param2');
    	formData.append('param3', 'Значение param3');
    	
    	// Совершаем POST-запрос в котором передаем ранее созданную форму с нашими данными:
    	
    	var result = await fetch('https://site.ru/test.php', { method: 'POST', body: formData });
    	
    	// Извлекаем из ответа текст:
    	
    	var response = await result.text();
    	
    	// Выводим ответ сервера в консоли:
    	
    	console.log("Ответ сервера:\n" + response);
    	
    	// Завершаем промис
    	// ответом сервера:
    	
    	return response;
    	
    }

    Замените целевой адрес на свой, вызовите функцию send() из консоли и посмотрите результат.
    Ответ написан
    Комментировать
  • Как получить доступ к вложенному массиву?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Выполните в консоли:
    arr = await (await fetch('https://sheetdb.io/api/v1/j0s93lmrv0uwi')).json();
    
    key = arr[8]['KEYWORDS'];
    link = arr[8]['LINK'];
    
    console.log('Ключ: ' + key);
    console.log('Ссылка: ' + link);
    Ответ написан
    Комментировать
  • Как автоматически подставить параметр к URL?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Ответ написан
    Комментировать
  • Как сохранять и считывать настройки расширения для браузера на JS?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Нужно хранить данные в базе данных и не просто базе данных, а желательно в базе данных фонового процесса. Например, я сам всегда использую IndexedDB, он удобен тем, что там можно хранить что угодно - любой тип данных.

    P. S. Есть риск потерять данные, если юзер очистит полностью историю и кеш или переустановит расширение. Если нужна высокая надежность, можно данные и вовсе хранить у себя на сервере, либо предлагать функцию экспорта и импорта данных специальным файлом настроек. Насчет chrome.storage ничего не могу сказать, никогда не пользовался им.
    Ответ написан
    Комментировать
  • Как спарсить большой файл с PHP?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Просто вынесите задачу на фронт. Создайте небольшую html-страничу, внутри нее кнопку. При нажатии на кнопку, вы скачивайте ваш JSON и парсите его. После парсинга по одному перебирайте ключи первого уровня вложенности и fetch-ем по одному отсылайте данные на сервер, чтобы он из сохранил у себя. Отсылайте по одному и строго один за другим, чтобы не перегружать ваш бэкенд и так, чтобы каждый очередной запрос с гарантией успевал отработать за 60 сек.
    Ответ написан
  • Как получить данные (Form Data) из POST-запроса WooCommerce, используя JS (jQuery)?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Найдите код инициатор запроса и выстраивайтесь в него, код инициатор можно спокойно посмотреть во вкладке network у консоли браузера. Если не понимайте как это сделать, лучше вам обратится на фрилансим.
    Ответ написан
    Комментировать
  • Как отправить кириллицу в чат бот telegram?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Для корректной передачи GET-параметров Вы должны использовать кодировку application/x-www-form-urlencoded. В языке PHP для получения строки нужного формата можно использовать функцию http_build_query(). Показать пример или сами справитесь?

    P. S. Кстати, вы передаете неправильный заголовок: text/xml. Сам запрос у вас тоже неправильный, вы пытайтесь сделать POST-запрос в то время как передаете данные в виде GET-строки.
    Ответ написан
    Комментировать
  • Почему не скачивается файл?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Artem Kirsov, делайте так. Все ваши параметры засуньте в FormData и уже его отправляйте:
    async function getFile() {
    	
    	var formData = new FormData();
    	formData.append('id', 'Ваш ID');
    	formData.append('test', 'Значение параметра test');
    	
    	var blob = await (await fetch('https://адрес_для_совершения_запроса', {
    		method: 'POST',
    		body: formData
    	})).blob();
    	
    	console.log('Файл успешно скачан:');
    	console.dir(blob);
    	
    	var link = document.createElement('a');
    	link.download = 'filename.xlsx';
    	link.href = URL.createObjectURL(blob);
    	link.click();
    	
    	return blob;
    	
    }

    Вызов функции getFile() будет возвращать промис результатом которого будет файл. Обратите внимание, что в FormData у меня всего лишь пример, как указывать параметры - вы должны там добавить свои параметры и их значения.
    Ответ написан
    4 комментария
  • Почему возникает ошибка Невозможно создать класс "PHPExel_Writer_Excel2016"?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Рекомендую использовать формат csv, у него крайне простая структура и он отлично читается экселем, из под коробки.
    Ответ написан
    Комментировать
  • Как выполнить PHP скрипт через ajax?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Все достаточно просто. PHP такой язык, что код в нем выполняется всякий раз, когда мы открывает страницу. Иными словами, для того чтобы выполнился код в некой условном файле test.php достаточно открыть его (скачать). На JavaScript для этого можно использовать fetch. Просто сделайте запрос по адресу вашего скрипта через fetch:
    https://learn.javascript.ru/fetch
    Ответ написан
    Комментировать
  • Как сохранить данные в переменную в ajax запросе с циклом?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Используйте асинхронность. Если добавить к функции приставку async, то внутри такой функции можно делать остановки для того, чтобы дождаться результатов работы другой асинхроной функции. jQuery функция ajax, может работать асинхронно, а значит можно сделать банально вот так:
    async function test() {
    	var out = ''
    	for (var n = 0; n < links.length; n++) {
    		var result = await $.ajax({ url: links[n], data: { 'id': 1 } });
    		// И далее делаем что-нибудь с result, внутри него будет результат запроса
    	}
    }
    
    test(); // Запускаем функцию test

    Обращаю внимание, это просто пример. Приставка await говорит, что надо дождутся выполнения запроса справа, записать результат запроса в переменную result и только потом продолжить выполнять кода дальше.
    Ответ написан
    6 комментариев
  • Как определить истинный IP пользователя с Opera VPN?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Если в браузере включен WebRTC, то можно определить реальный IP-адрес через него. Также существуют системы аналитики, что следят за пользователями и могут не только определить IP-адрес, но и даже почту с телефоном.
    Ответ написан
    Комментировать
  • Как записать данные в переменную из GET запроса?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Все куда проще, чем вы думайте, просто выполните в консоли:
    let allDots = await (await fetch('http://mysite.ru/json.php')).json();
    console.log('Содержимое переменной allDots:');
    console.dir(allDots);

    Разумеется адрес для загрузки JSON замените на свой.
    Ответ написан
  • Как из URL вырезать домен без www. с помощью RegExp на js?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Это делается так:
    new URL('https://www.rohrreinigung-schneemann.de/berlin').hostname.replace(/^www\./, '');

    Класс URL парcит адрес, из адреса берем хост и удаляем www. в начале, если оно там есть.
    Ответ написан
    2 комментария
  • Как добраться до внука iframe?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Не слушайте комментаторов выше. Добраться до содержимого фрейма вполне возможно, для требуется соблюсти лишь одно условие: чтобы фрейм грузился с вашего же сайта.
    Ответ написан
    Комментировать
  • FormData отправляется в AXIOS, но FETCH не работает, как отправить через fetch?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Когда вы добавляйте файл в FormData вы должны третьим параметром передавать имя файла, чего я у в вас не наблюдаю.
    Ответ написан
  • Почему jquery возвращает undefined?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Событие DOMSubtreeModified морально устарело и не поддерживается более браузерами.
    Если вам нужна реакция на изменение страницы, то вы должны использовать наблюдателей.

    Делается это примерно так:
    // При клике на кнокпу выполняем функцию:
    
    $('#employee_avatar_button').click(function(){
    	
    	// Создаем наблюдателя, переданная функция будет
    	// выполнятся всякий раз при изменении страницы:
    
    	var observer = new MutationObserver(function() {
    		
    		// Ищем нужный нам элемент:
    		var el = $('#employee_avatar_ul li::last-child');
    		
    		// Если элемент найден:
    		
    		if (el.length > 0) {
    			
    			// Откл. наблюдателя:
    			observer.disconnect();
    			
    			// Выводим уведомления:
    			
    			console.log('Найден элемент:');
    			console.dir(el[0]);
    			
    			console.log('Его атрибут file_id: ' + el.attr('file_id'));
    			
    		}
    		
    		// Если элемента еще нет:
    		
    		else {
    			
    			// Выводим соотвествующее уведомление:
    			console.log('Обнаружено изменение содержимого тега <body></body> - однако элемент, который мы ждем, пока еще отсуствует на странице.');
    			
    		}
    		
    	});
    
    	// Прикрепляем наблюдатель к body:
    
    	observer.observe(document.body, {
    		characterData: true,
    		attributes: true,
    		childList: true,
    		subtree: true
    	});
    
    });

    Почитать подробнее можно здесь: https://learn.javascript.ru/mutation-observer
    Ответ написан
    Комментировать
  • Как отправлять файлы через AJAX?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Все куда проще. Попробуйте так:
    $('form').submit(async function(event) {
    	
    	event.preventDefault(); // Предотвращаем отправку формы
    	var form = new FormData($('form')[0]); // Получаем форму
    	
    	// Отправляем форму AJAX-ом:
    	
        var response = await $.ajax({
            type: 'POST',
            url: 'mail.php',
            cache: false,
            data: form,
        });
    	
    	alert(response); // Выводим ответ
    	
    });
    Ответ написан
    4 комментария
  • Как обработать ответ url.fetch, который приходит в UTF-8 without BOM?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Это же JSON. Удалите лишний текст в начале и затем распарсите JSON при помощи JSON.parse()
    Ответ написан
    Комментировать