Bonjour,
je planche depuis quelques jours sur un algorithme permettant de générer des mots clés pour les balises "keywords", à partir d'une description d'un produit.

Je m'explique :
On considère un formulaire pour la création d'un projet . Nom, description, keywords ...
Le champ keywords sera remplit automatiquement avec les mots en gras compris dans la description...
Le champ sera remplit automatiquement en même temps que la description ...

Voici l'algo que j'ai trouvé :

LORSQU'ON REMPLIS LE DESCIPTION
SI EXISTE DANS CHAINE "<strong> $1 </strong>"
{
tableau.ajouter($1+;)
}
SINON lettre +1
}

Assez simpliste, mais dans mon esprit c'est claire =D

Pourtant, j'ai vraiment du mal à coder sa en Jquery... Quelqu'un aurait il une idée ?

J'avais penser à créer un script PHP qui s'occupe de sa, et lancer un appelle ajax à chaque event (touche pressée) mais niveau optimisation... on repassera !

1 réponse


Voilà le script qui peut te convenir: [code] var description = $("#description").html(); var tags = description.match(/*([a-zA-Z0-9]+)/g); for (var i = tags.length - 1; i >= 0; i--) { tags* = tags\.match(/([a-zA-Z0-9]+)/)[1]; }; [/code] Donc si tu as dans par exemple

qui contient le texte: Lorem ipsum dolor sit amet, **consectetur** adipisicing elit. Cupiditate **quasi** aliquid debitis asperiores temporibus et magnam deleniti **maxime**. Odio, nobis accusamus soluta sint pariatur rem harum consequatur **obcaecati** nemo provident! On vas récupéré le contenu HTML (donc le texte avec les balises) grâce à la première ligne du script. Ensuite on vas récupérer tout les mots dans une balise strong, après la secondes ligne, la variable tags sera un tableau contenant ceci:consectetur,quasi,maxime,obcaecatiDonc on a isoler les mots, mais avec la balise strong, pour enlever la balise strong, on vas créer une boucle qui vas exclure pour chaque champ du array, le mot des balises strong, on obtient donc: consectetur,quasi,maxime,obcaecati Bien entendu le contenu des balises strong doit contenir que des lettres ou chiffres, si tu veux ajouter des caractères tu dois le préciser dans les crochets après le 9.**