erreur sencore pour le chat bot
This commit is contained in:
@ -67,28 +67,44 @@ class ChatbotIA {
|
|||||||
|
|
||||||
// NOUVELLE MÉTHODE : Détecter la question visible
|
// NOUVELLE MÉTHODE : Détecter la question visible
|
||||||
detectCurrentQuestion() {
|
detectCurrentQuestion() {
|
||||||
// Méthode 1 : Chercher l'élément de question visible/actif
|
// Trouver la question la plus visible dans le viewport
|
||||||
const activeQuestion = document.querySelector('.question.active, .question-container.active, [data-question-active="true"]');
|
const questionCards = document.querySelectorAll('.question-card[data-question-id]');
|
||||||
if (activeQuestion && activeQuestion.dataset.questionId) {
|
|
||||||
return parseInt(activeQuestion.dataset.questionId);
|
if (questionCards.length === 0) {
|
||||||
|
console.error('❌ Aucune question-card trouvée');
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Méthode 2 : Chercher dans les inputs visibles
|
let closestQuestion = null;
|
||||||
const visibleInputs = document.querySelectorAll('input[name^="reponse_"]:not([style*="display: none"])');
|
let minDistance = Infinity;
|
||||||
if (visibleInputs.length > 0) {
|
const viewportCenter = window.innerHeight / 2;
|
||||||
const match = visibleInputs[0].name.match(/reponse_(\d+)/);
|
|
||||||
if (match) {
|
questionCards.forEach(card => {
|
||||||
return parseInt(match[1]);
|
const rect = card.getBoundingClientRect();
|
||||||
|
|
||||||
|
// La question est visible dans le viewport
|
||||||
|
if (rect.top < window.innerHeight && rect.bottom > 0) {
|
||||||
|
const cardCenter = rect.top + (rect.height / 2);
|
||||||
|
const distance = Math.abs(cardCenter - viewportCenter);
|
||||||
|
|
||||||
|
if (distance < minDistance) {
|
||||||
|
minDistance = distance;
|
||||||
|
closestQuestion = card;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
|
|
||||||
// Méthode 3 : Index de question actuelle (si ton système utilise un index)
|
if (closestQuestion) {
|
||||||
if (typeof currentQuestionIndex !== 'undefined' && questionsIds[currentQuestionIndex]) {
|
const qId = parseInt(closestQuestion.dataset.questionId);
|
||||||
return questionsIds[currentQuestionIndex];
|
console.log('✅ Question visible détectée:', qId);
|
||||||
|
return qId;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fallback : première question
|
// Fallback : première question
|
||||||
return questionsIds[0];
|
const firstCard = questionCards[0];
|
||||||
|
const qId = parseInt(firstCard.dataset.questionId);
|
||||||
|
console.log('⚠️ Fallback première question:', qId);
|
||||||
|
return qId;
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOUVELLE MÉTHODE : Charger l'aide restante via AJAX
|
// NOUVELLE MÉTHODE : Charger l'aide restante via AJAX
|
||||||
|
|||||||
@ -625,8 +625,7 @@ $reponses_sauvegardees = json_decode($tentative['reponses_json'] ?? '{}', true)
|
|||||||
<input type="hidden" name="id_evaluation" value="<?= $id_evaluation ?>">
|
<input type="hidden" name="id_evaluation" value="<?= $id_evaluation ?>">
|
||||||
|
|
||||||
<?php foreach ($questions as $index => $q): ?>
|
<?php foreach ($questions as $index => $q): ?>
|
||||||
<div class="question-card" data-question="<?= $index + 1 ?>" data-id="<?= $q['id_question'] ?>">
|
<div class="question-card" data-question="<?= $index + 1 ?>" data-id="<?= $q['id_question'] ?>" data-question-id="<?= $q['id_question'] ?>"> <div class="question-header">
|
||||||
<div class="question-header">
|
|
||||||
<div class="question-number">Question <?= $index + 1 ?> / <?= count($questions) ?></div>
|
<div class="question-number">Question <?= $index + 1 ?> / <?= count($questions) ?></div>
|
||||||
<div class="question-meta">
|
<div class="question-meta">
|
||||||
<span class="badge badge-points"><?= $q['points'] ?> pts</span>
|
<span class="badge badge-points"><?= $q['points'] ?> pts</span>
|
||||||
|
|||||||
Reference in New Issue
Block a user