Script pour liste des membres [js]
3 participants
Forum gratuit : Le forum des forums actifs :: Entraide & Support... :: Problème avec un script, un code :: Archives des problèmes avec un code
Page 1 sur 1 • Partagez
Script pour liste des membres [js]
Détails techniques
Version du forum : phpBB2Poste occupé : Fondateur
Navigateur(s) concerné(s) : Google Chrome
Personnes concernées par le problème : Moi uniquement
Lien du forum : (lien masqué, vous devez poster pour le voir)
Description du problème
Bonjour !Je viens requérir votre aide pour un petit soucis de javascript ! En effet, je suis en train de coder un template #memberlist_body et je suis confrontée à un petit soucis m'empêchant de continuer. J'ai déjà fait toute la structure et pas mal d'ajouts que je désirais faire donc j'ai fait un petit schéma !
- Schéma:
Schématiquement, le code de base de chaque membre, nettoyé de toutes les informations inutiles, est celui là :
- Code:
<!-- BEGIN memberrow -->
<div id="member-id">
<div class="member-nom">PSEUDO</div>
<div class="member-avatar">(image avatar)</div>
<div class="member-rang">rang textuel du personnage</div>
</div>
<!-- END memberrow -->
Afin de poursuivre mon template, j'ai besoin d'un script qui rajoute une class avec pour no, le nom du rang au niveau de la div #member-id. Par exemple si le rang du personnage est rang1, que le codage devienne :
- Code:
<!-- BEGIN memberrow -->
<div id="member-id" class="member-rang1">
<div class="member-nom">PSEUDO</div>
<div class="member-avatar">(image avatar)</div>
<div class="member-rang">rang1</div>
</div>
<!-- END memberrow -->
J'ai donc fait un script pour cela, ce qui donne :
- Code:
<!-- BEGIN memberrow -->
<div id="member-id" class="rang1">
<div class="member-nom">PSEUDO</div>
<div class="member-avatar">(image avatar)</div>
<div id="member-rang">rang1</div>
</div>
<script type="text/javascript">$(document).ready(function () {if("#member-rang > rang1") {$("#member-id").addClass('member-rang1');}});</script>
<!-- END memberrow -->
Le script fonctionne mais uniquement sur le premier membre de la liste et si par exemple le troisième membre à rang2 comme rang, alors la div parente du premier membre de la liste devient :
- Code:
<div id="member-id" class="rang1 rang2"></div>
Auriez-vous une idée de comment appliquer ce script à chaque membre sans que cela ne s'accumule sur le premier ?
Merci beaucoup à ceux qui prendront le temps de lire ! Bonne soirée !
Re: Script pour liste des membres [js]
Bonjour ^^
A vue de nez je vois deux soucis dans votre codage.
Le premier :
Ceci est une boucle, elle sera exécutée autant de fois que vous affichez de membres par page.
Hors un id se doit de n'être utilisé qu'une fois par page.
Comme l'id est unique sur chaque page, javascript va toujours renvoyer la première occurence de l'id puisque cette occurrence se doit d'être la seule.
Si vous utilisez plusieurs fois par page cet élément, vous devez utiliser une class à la place de l'id.
Le second :
Vous placez le script à l'intérieur de la boucle et allez donc l'exécuter autant de fois qu'il y a de membres sur la page.
Vous devriez comme dans ce sujet placer le script après la boucle :
Coloriser la liste de membres en fonction de la couleur de pseudo
A vue de nez je vois deux soucis dans votre codage.
Le premier :
<!-- BEGIN memberrow -->
...
<!-- END memberrow -->
Ceci est une boucle, elle sera exécutée autant de fois que vous affichez de membres par page.
Ceci est un id. Et sera répété autant de fois qu'il y a de membres puisqu'il est inclus dans la boucle.<div id="member-id" class="rang1">
Hors un id se doit de n'être utilisé qu'une fois par page.
Comme l'id est unique sur chaque page, javascript va toujours renvoyer la première occurence de l'id puisque cette occurrence se doit d'être la seule.
Si vous utilisez plusieurs fois par page cet élément, vous devez utiliser une class à la place de l'id.
Le second :
Vous placez le script à l'intérieur de la boucle et allez donc l'exécuter autant de fois qu'il y a de membres sur la page.
Vous devriez comme dans ce sujet placer le script après la boucle :
Coloriser la liste de membres en fonction de la couleur de pseudo
Re: Script pour liste des membres [js]
Merci pour votre rapide réponse !
J'ai donc changé le code en cela :
Le problème est que maintenant, toutes .member-id prennent toutes les classs des différents rangs, n'ayant mis que deux rangs pour l'instant, elles ont toutes :
Je me demandais du coup s'il y avait "moyen de cibler" le JS sur plusieurs éléments d'une même page ?
J'ai donc changé le code en cela :
- Code:
<!-- BEGIN memberrow -->
<div class="member-id">
<div class="member-nom">PSEUDO</div>
<div class="member-avatar">(image avatar)</div>
<div class="member-rang">rang1</div>
</div>
<!-- END memberrow -->
<script type="text/javascript">$(document).ready(function () {if(".member-rang > rang1") {$(".member-id").addClass('member-rang1');}});</script>
<script type="text/javascript">$(document).ready(function () {if(".member-rang > rang2") {$(".member-id").addClass('member-rang2');}});</script>
Le problème est que maintenant, toutes .member-id prennent toutes les classs des différents rangs, n'ayant mis que deux rangs pour l'instant, elles ont toutes :
- Code:
<div class="member-id rang1 rang2">
Je me demandais du coup s'il y avait "moyen de cibler" le JS sur plusieurs éléments d'une même page ?
Re: Script pour liste des membres [js]
$(".member-id") va cibler toutes les occurences de la class member-id et non uniquement la div parente de l'élément sélectionné.
Code non testé :
Code non testé :
- Code:
<script type="text/javascript">$(document).ready(function () {if(".member-rang > rang1") {.parent().addClass('rang1');}});</script>
Re: Script pour liste des membres [js]
Hello Ashling et Hélène,
très joli forum .
le template dans sa totalité aurait été un plus..
Ton code html avec les variables doit ressembler à ceci:
Si je pars de ce dernier, le script sera et si le profil avancé est activé:
Utilisateurs et groupes/Profil/Options générales/Options générales du profil
Activer le profil avancé : Oui
Modules/HTML&JAVASCRIPT/Gestion des codes Javascript/Créer un nouveau Javascript
Mettre un titre explicite.
Coches sur toutes les pages.
Déposes ceci:
Penses à cliquer sur le bouton VALIDER
Chaque cellule aura la class identique à son rang :
Bon le rendu n'est pas très très chouette comparé à ton fofo .
Et voilou .
a++
très joli forum .
le template dans sa totalité aurait été un plus..
Ton code html avec les variables doit ressembler à ceci:
- Code:
<div class="member-id">
<div class="member-nom"><a class="gen Pseudo" href="{memberrow.U_VIEWPROFILE}">{memberrow.USERNAME}</a></div>
<div class="member-avatar"><a href="{memberrow.U_VIEWPROFILE}">{memberrow.AVATAR_IMG}</a></div>
<div class="member-rang">Aucun rang</div>
</div>
Si je pars de ce dernier, le script sera et si le profil avancé est activé:
Utilisateurs et groupes/Profil/Options générales/Options générales du profil
Activer le profil avancé : Oui
Modules/HTML&JAVASCRIPT/Gestion des codes Javascript/Créer un nouveau Javascript
Mettre un titre explicite.
Coches sur toutes les pages.
Déposes ceci:
- Code:
$(function(){
$('.Pseudo').each(function(){
var $this=$(this).closest('div').next().next();
var M14_link=$(this).attr('href');
$.get(M14_link , function(data){
var h=$(data).find('#profile-advanced-details').closest('td[valign="top"]').next().find('.forumline td.row1.gensmall:first').text();
var M14_rang = h.substring(5,);
if(M14_rang)
{
$this.parent().addClass(M14_rang);
$this.text(M14_rang);
}
else
{
$this.text('Aucun rang');
}
});
});});
Penses à cliquer sur le bouton VALIDER
Chaque cellule aura la class identique à son rang :
Bon le rendu n'est pas très très chouette comparé à ton fofo .
Et voilou .
a++
Invité- Invité
Re: Script pour liste des membres [js]
Bonjour, Attention, cela fait 6 jours que nous n'avons pas de nouvelles concernant votre demande, si vous ne voulez pas voir votre sujet déplacé à la corbeille, merci de poster dans les 24h qui suivent ce message. Si votre sujet est résolu, merci d'éditer votre premier message et de cocher l'icône « résolu » |
Re: Script pour liste des membres [js]
Bonjour, Nous n'avons plus de nouvelle de l'auteur de ce sujet depuis plus de 7 jours. Nous considérons donc ce problème comme résolu ou abandonné. La prochaine fois, merci de nous tenir au courant de l'évolution de votre problème, ou pensez à faire un UP régulièrement ! Ce sujet est archivé afin de ne pas perdre les réponses apportées. |
Sujets similaires
» Script faisant apparaître liste des membres (+ connectés)
» Problème de script pour intervertir le sous forum et la liste de sujet
» Désactiver la liste des membres pour les invités
» Obtenir l'ID d'un membre pour envoyer un mp depuis la liste des membres (résolu)
» Retour à la ligne pour la liste des "Membres connectés au cours des 24 heures"
» Problème de script pour intervertir le sous forum et la liste de sujet
» Désactiver la liste des membres pour les invités
» Obtenir l'ID d'un membre pour envoyer un mp depuis la liste des membres (résolu)
» Retour à la ligne pour la liste des "Membres connectés au cours des 24 heures"
Forum gratuit : Le forum des forums actifs :: Entraide & Support... :: Problème avec un script, un code :: Archives des problèmes avec un code
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum