document.addEventListener('DOMContentLoaded', function() {
// Находим форму по классу
const form = document.querySelector('.t-form__inputsbox_vertical-form');
if (form) {
form.addEventListener('submit', async function(e) {
e.preventDefault();
// Получаем значения полей
const siteUrl = form.querySelector('input[name="url"]').value.trim();
const keyword = form.querySelector('input[name="text"]').value.trim();
// Проверка заполнения полей
if (!siteUrl || !keyword) {
alert('Пожалуйста, заполните все поля');
return;
}
// Показываем индикатор загрузки
const submitButton = form.querySelector('.t-submit');
const originalButtonText = submitButton.querySelector('.t-btnflex__text').textContent;
submitButton.querySelector('.t-btnflex__text').textContent = 'Проверяем...';
submitButton.disabled = true;
// Создаем или находим блок для результатов
let resultsContainer = document.getElementById('position-check-results');
if (!resultsContainer) {
resultsContainer = document.createElement('div');
resultsContainer.id = 'position-check-results';
resultsContainer.style.marginTop = '20px';
resultsContainer.style.padding = '15px';
resultsContainer.style.border = '1px solid #eee';
resultsContainer.style.borderRadius = '5px';
form.parentNode.insertBefore(resultsContainer, form.nextSibling);
}
resultsContainer.innerHTML = '
Идет проверка позиций...
';
try {
// Отправляем запрос на ваш бэкенд
const response = await fetch('https://khasyanov-host.ru/api.php', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
site_url: siteUrl,
keyword: keyword
})
});
const data = await response.json();
if (data.error) {
resultsContainer.innerHTML = `
Ошибка: ${data.error}
`;
return;
}
// Форматируем результаты
let html = `
Результаты для ${siteUrl}
`;
html += `
Ключевое слово: "${keyword}"
`;
if (data.results && data.results.length > 0) {
html += '
';
html += '
Позиции в поисковой выдаче:
';
html += '
';
html += '';
html += 'Позиция | ';
html += 'Сайт | ';
html += '
';
data.results.forEach((position, index) => {
const isTargetSite = position.domain.includes(new URL(siteUrl).hostname.replace('www.', ''));
const rowStyle = isTargetSite ? 'background-color: #e6f7e6;' : '';
html += ``;
html += `${position.position} | `;
html += `${position.domain} | `;
html += '
';
});
html += '
';
html += '
';
} else {
html += '
Позиции не найдены в ТОП-10
';
}
resultsContainer.innerHTML = html;
} catch (error) {
resultsContainer.innerHTML = `
Произошла ошибка при проверке: ${error.message}
`;
} finally {
// Восстанавливаем кнопку
submitButton.querySelector('.t-btnflex__text').textContent = originalButtonText;
submitButton.disabled = false;
}
});
}
});