Surbrillance d'un mot sur lequel on a cliqué
Bonjour,
Je suis en train de créer un site dont l'objet est de proposer à un utilisateur une liste de phrases dont il devra repérer la faute qui s'y trouve. Pour cela, il devra cliquer sur le mot fautif (chaque clic provoquant une insertion en bdd pour mémoriser la position du mot cliqué dans la phrase).
Une fois que l'utilisateur a cliqué sur toutes les phrases proposées (phase 1), une page distincte est chargée d'afficher toutes ces phrases et de vérifier s'il a donné les bonnes réponses (phase 2).
J'utilise le code suivant pour la phase 2 :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| <?php
$req = $base->prepare('SELECT Texte AS Phrase, positionCliquee ...');
$req->bindParam('QuestionnaireId', $QuestionnaireId, PDO::PARAM_INT);
$req->execute();
$i=1;//numérotation mot dans la phrase
while($donnees = $req->fetch(PDO::FETCH_ASSOC))
{
$mots = preg_split("/[ ]+/u", $donnees ['Phrase']);
$positionCliquee = $donnees ['positionCliquee'];
foreach($mots as $span){
$string_span = '<span class="span" id="mot_'.$i.'">'.$span.' </span>';
echo $string_span; // affichage phrase
$i++;
}//fin foreach
$num++;
}//fin while |
Je souhaite pouvoir mettre en surbrillance pour chaque phrase le mot sur lequel l'utilisateur a précédemment cliqué.
Exemple : si $donnees ['Phrase'] vaut "Chose promise, chose dut.", le traitement preg_split aboutit au résultat suivant :
Code:
<span class="span" id="mot_1">Chose</span> <span class="span" id="mot_2">promise,</span> <span class="span" id="mot_3">chose</span> <span class="span" id="mot_4">dut.</span>
et si le visiteur a cliqué, lors de la phase 1, sur le mot n° 4 ($positionCliquee = 4), le mot "dut" devra être mis en surbrillance (ou en gras).
Ce traitement devra être reproduit pour chaque phrase affichée (en fonction de la position du mot cliqué).
Voyez-vous comment procéder pour aboutir à ce résultat ? Merci.