Тест на знание казахского языка | IQRA ACADEMY
[Предыдущая структура HTML остается без изменений до формы]
Ваше имя
Ваш телефон
// Массив с вопросами теста const questions = [ { type: "language", question: "Для кого рассматриваете обучение?", answers: [ { text: "Для себя", correct: null }, { text: "Для ребенка", correct: null } ] }, { type: "language", question: "В какие сроки хотите заговорить на казахском языке?", answers: [ { text: "За 1-2 месяца", correct: null }, { text: "За 3-6 месяцев", correct: null }, { text: "За 6-12 месяцев", correct: null } ] }, { type: "language", question: "Сколько свободного времени в день есть на изучение казахского языка?", answers: [ { text: "30-60 минут", correct: null }, { text: "1-2 часа", correct: null }, { text: "Более 2 часов", correct: null } ] }, { type: "language", question: "Изучали ли казахский язык до этого?", answers: [ { text: "Нет, никогда не изучал(а)", correct: null }, { text: "Да, в школе/университете", correct: null }, { text: "Да, самостоятельно", correct: null } ] }, { question: "Выберите правильный перевод слова 'Здравствуйте':", answers: [ { text: "Сәлеметсіз бе", correct: true }, { text: "Рахмет", correct: false }, { text: "Кешіріңіз", correct: false } ] }, { question: "Как сказать 'Как вас зовут?' на казахском:", answers: [ { text: "Қайда барасыз?", correct: false }, { text: "Сіздің атыңыз кім?", correct: true }, { text: "Сіз қайдансыз?", correct: false } ] }, { question: "Как будет 'спасибо' на казахском?", answers: [ { text: "Рахмет", correct: true }, { text: "Кешіріңіз", correct: false }, { text: "Сау болыңыз", correct: false } ] }, { question: "Выберите правильный перевод числа 'пять':", answers: [ { text: "Үш", correct: false }, { text: "Бес", correct: true }, { text: "Жеті", correct: false } ] }, { question: "Как сказать 'До свидания':", answers: [ { text: "Сау болыңыз", correct: true }, { text: "Кездескенше", correct: false }, { text: "Рахмет", correct: false } ] }, { question: "Выберите слово, означающее 'дом':", answers: [ { text: "Көше", correct: false }, { text: "Үй", correct: true }, { text: "Мектеп", correct: false } ] } ]; // Основные переменные для отслеживания состояния теста let currentQuestion = 0; let score = 0; let coins = 0; let userAnswers = {}; // Функция запуска теста function startQuiz() { document.getElementById('intro').style.display = 'none'; document.getElementById('questionContainer').style.display = 'block'; showQuestion(); } // Функция отображения вопроса function showQuestion() { const questionData = questions[currentQuestion]; document.getElementById('question').textContent = questionData.question; const answersDiv = document.getElementById('answers'); answersDiv.innerHTML = ''; questionData.answers.forEach((answer, index) => { const button = document.createElement('div'); button.className = 'answer'; button.textContent = answer.text; button.onclick = () => selectAnswer(answer.correct, button, answer.text); answersDiv.appendChild(button); }); updateProgress(); } // Функция обновления прогресса function updateProgress() { const progress = ((currentQuestion) / questions.length) * 100; document.getElementById('progress').style.width = `${progress}%`; } // Функция создания анимации монетки function createFlyingCoin(x, y) { const coin = document.createElement('div'); coin.className = 'coin-icon flying-coin'; coin.textContent = '₸'; coin.style.left = `${x}px`; coin.style.top = `${y}px`; document.body.appendChild(coin); setTimeout(() => { coin.remove(); }, 1000); } // Функция выбора ответа function selectAnswer(correct, button, answerText) { const questionData = questions[currentQuestion]; const answers = document.getElementsByClassName('answer'); Array.from(answers).forEach(answer => { answer.style.pointerEvents = 'none'; }); if (questionData.type === 'language') { userAnswers[questionData.question] = answerText; button.classList.add('correct'); setTimeout(nextQuestion, 500); } else { if (correct) { button.classList.add('correct'); score++; const rect = button.getBoundingClientRect(); createFlyingCoin(rect.right, rect.top); const audio = document.getElementById('coinSound'); if (audio) { audio.currentTime = 0; audio.play().catch(() => {}); } addCoins(10); } else { button.classList.add('wrong'); } setTimeout(nextQuestion, 1000); } } // Функция добавления монет function addCoins(amount) { coins += amount; const coinCounter = document.getElementById('coinCount'); coinCounter.textContent = coins; coinCounter.classList.add('coin-animation'); setTimeout(() => { coinCounter.classList.remove('coin-animation'); }, 500); } // Функция перехода к следующему вопросу function nextQuestion() { currentQuestion++; if (currentQuestion < questions.length) { showQuestion(); } else { submitQuizData(); } } // Функция отправки результатов в форму Tilda function submitQuizData() { document.getElementById('questionContainer').style.display ='none'; // Подготовка данных для отправки const testQuestions = questions.filter(q => !q.type || q.type !== 'language'); const percentage = (score / testQuestions.length) * 100; let level; if (percentage >= 80) { level = "B1 - Средний уровень"; } else if (percentage >= 50) { level = "A2 - Базовый уровень"; } else { level = "A1 - Начальный уровень"; } // Заполняем скрытые поля формы document.getElementById('quiz_score').value = score; document.getElementById('quiz_level').value = level; document.getElementById('quiz_answers').value = JSON.stringify(userAnswers); // Показываем форму Tilda const tildaForm = document.getElementById('form827913703'); tildaForm.style.display = 'block'; tildaForm.scrollIntoView({ behavior: 'smooth' }); }