Le plugin attend un tableau de type json avec les clés title et weight au minimum.
- title pour le nom du mot
- weight pour connaître l'importance du mot afin de selon la valeur cette propriété, lui donner un affichage plus élevé que les autres
Tu as peut-être vu qu'il est possible de lui passer une propriété html, mais ça ne veut pas dire que tu peux lui passer un tableau contenant une chaîne de caractère qui sera du HTML, mais seulement que tu peux lui définir des valeurs pour des attributs HTML.
Pour faire simple, voici par exemple ce qu'il attend au minimum :
[
{text: "Lorem", weight: 15},
{text: "Sit", weight: 7},
{text: "Amet", weight: 5}
]
Lorsqu'il est question de html, voici un exemple :
[
{text: "Dolor", weight: 6, html: {
title: "I can haz any html attribute"
}
}
]
De base, lorsqu'il va reçevoir les données sous forme de tableau, il va retourner ces mots dans des span, en appliquant des règles css sur chaque élément suite à des calculs dans le code javascript.
Il va donc retourner quelque chose comme :
<span style="width:7px;height:5px;">Lorem</span><span style="width:3px;height:4px;">Sit</span>/* etc... */
Lorsqu'il est question de html, il ne fera qu'ajouter des attributs html à l'élément span, comme une class par exemple ou autre.
Dans tous les cas, il ne faut pas lui renvoyer de chaine de caratères sous format HTML.
Si tu veux modifier le tableau des données que tu lui envoit, il te faut le faire avant delui envoyer sous format json, mais uniquement avec du PHP et non avec du code html, par exemple :
$words = $requete->fetchAll(PDO::FETCH_OBJ);
$wordsArray = [];
foreach ($words as $key => $word) {
$wordsArray[$key]['text'] = $word->name;
$wordsArray[$key]['weight'] = $word->look_count;
}
Ce qui permettra de recréer les données avec les index qu'il attend dans le tableau et sans lui soumettre de code html et seulement avec les données qu'il attend, bien que si tu as besoin de limiter les champs récupérés via ta requête SQL, il te faut modifier l'indicateur all soit * par la liste des champs voulus, donc par rapport à mon exemple : 'SELECT name, look_count FROM les_mots ORDER BY mot'
Si tu veux que l'élément puisse être cliquable et qu'il renvoi vers une url spécifique, tu puis lui definir la clé link dans tes données en json pour qu'il entoure l'élément d'un lien avec l'url que tu définis.
Selon ton code ça donnerait :
$words = $requete->fetchAll(PDO::FETCH_OBJ);
$wordsArray = [];
foreach ($words as $key => $word) {
$wordsArray[$key]['text'] = $word->name;
$wordsArray[$key]['weight'] = $word->look_count;
$wordsArray[$key]['link'] = 'definition.php?id=' . $word->id;
}