Fork me on GitHub






Autocomplete: Comment faire sous Xoops ?
Aspirant
Inscrit: 28/11/2021 22:07
Messages: 36
Bonjour,

J'ai un module de recherche avec une liste qui contient beaucoup d’éléments.
J'aimerais faire une autocomplète (champ texte qui filtre en ajax)... Chose qu'on fait facilement avec pas mal de bibliothèques de composants.

J'ai regardé rapidement dans les objects forms de Xoops, mais rien n'y ressemble... Dommage.

Je crois que je vais devoir me taper ça à la main, mais du coup, quelle méthode suggéreriez vous ?
Javascript natif ?

Cordialement

Posté le : 18/08/2022 16:47
Partager Twitter Partagez cette article sur GG+
Re: Autocomplete: Comment faire sous Xoops ?
Admin Frxoops
Inscrit: 04/03/2011 09:10
De Lot
Messages: 2837
avec jQuery et son appel Ajax.

Je détecte une modification du champs en question,
jQuery Utilise Ajax vers un fichier API qui génère les données possibles
jQuery modifie les données du champs en question avec data
A chaque modification du champs, jQuery fait une nouvelle requete pour affiner l'autocomplete.

Donc juste un ficher JS à intégrer dans le thème ou la page du formulaire

Posté le : 18/08/2022 16:53
Partager Twitter Partagez cette article sur GG+
Re: Autocomplete: Comment faire sous Xoops ?
Aspirant
Inscrit: 28/11/2021 22:07
Messages: 36
Bonjour ,

Merci pour ta réponse rapide.
J'y ai ben pensé, mais vu que Xoops n'utilise pas JQuery et que c'est assez lourd (lent), j'ai cherché un scripté dédié.
J'ai trouvé ça et je suis dessus, ça a l'air de faire l'affaire... Faut juste que je l'adapte pour que ça gère les Id+Lib, et pas seulement les lib.

Voici ce que j'ai déjà:

public function getAutocomplete($Objs$name$defaut=0$txtAll="") {
        
//echo"DEBUG2:<pre>";print_r($val->getVar('name'));echo"</pre>"; // Pour voir le contenu d'une variable
        
$ret "<div class='autocomplete' style='width:300px;position:relative;display:inline-block;'>"
            
."<input id='my".$name."' type='text' name='my".$name."' placeholder='".$name."'>";
        
$tab "var tab".$name." = [";
        
$sep "";
        foreach (
$Objs as $id => $val) {
            
$tab.= $sep.'"'.$id.':'.$val->getVar('name').'"';
            
$sep ",";
        }
        
$tab .= "];";
        return 
$ret.'</div><script type="text/javascript">'.$tab.'autocomplete(document.getElementById("my'.$name.'"), tab'.$name.');</script>';
    }

Avec les choses génériques dans les fichiers JS et CSS.


Posté le : 18/08/2022 17:34
Partager Twitter Partagez cette article sur GG+
Re: Autocomplete: Comment faire sous Xoops ?
Admin Frxoops
Inscrit: 16/05/2003 18:10
De Rhone-Alpes
Messages: 4051
Citation :
davidm78 a écrit :
mais vu que Xoops n'utilise pas JQuery
Si si,
édite la source de ton site, tu verras certainement une ligne :
<script src="https://www.monsite.fr/browse.php?Frameworks/jquery/jquery.js"></script>



Posté le : 18/08/2022 18:30

Open in new window
Partager Twitter Partagez cette article sur GG+
Re: Autocomplete: Comment faire sous Xoops ?
Aspirant
Inscrit: 28/11/2021 22:07
Messages: 36
Salut Alain,

Pfff ,en effet... J'avais fait cette recherche au début de mon sujet, mais j'avais la recherche "case sensitive" restée d'une dernière recherche et j'avais mis une majuscule à Jquery

Bon, ou j'en suis, je continue sur ma lancée.
(et puis Jquery n'est pas Jquery.ui )

Merci à vous.

Posté le : 18/08/2022 18:38
Partager Twitter Partagez cette article sur GG+
Re: Autocomplete: Comment faire sous Xoops ?
Admin Frxoops
Inscrit: 04/03/2011 09:10
De Lot
Messages: 2837
suffit de mettre le cdn de jQueryUI dans le thème.
ça évite de faire des modifications de core ou de modules. Rendant les MAJ plus délicates après

Posté le : 18/08/2022 18:52
Partager Twitter Partagez cette article sur GG+
Re: Autocomplete: Comment faire sous Xoops ?
Admin Frxoops
Inscrit: 16/05/2003 18:10
De Rhone-Alpes
Messages: 4051
Exact, Cédric, 100% d'accord avec toi.

Pour moi, la règle est obligatoire chez moi :
Ne jamais modifier le Core.

Dans le cas contraire, c'est une source de problème assurée et une assurance de grandes difficultés lors de mises à jour.

La solution de l'intégration du CDN dans le thème est la plus viable.

Il est également possible (mais plus long) de proposer des ajouts dans le Core.
Dans ce cas, une fois validés (si validés), les ajouts (fonctionnalités) seront disponibles sur les versions ultérieures officielles.


Posté le : 19/08/2022 08:55

Open in new window
Partager Twitter Partagez cette article sur GG+
Re: Autocomplete: Comment faire sous Xoops ?
Aspirant
Inscrit: 28/11/2021 22:07
Messages: 36
Salut Cédric, Salut Alain,

En effet, je rejoint la philosophie

Mon autocomplète fonctionne bien, faut juste que je la blinde un peu pour éviter les manipulations délirantes.
Mais j'ai tout mis dans mon module... Pas très "générique".

Donc ce serait top qu'il y ait un XoopsForm autocomplète dans le core.

Merci encore pour vos retours

Posté le : 22/08/2022 10:11
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

81 Personne(s) en ligne (57 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 81 | Plus ...