Affichage d'un lien dynamiquement dans ma navbar ??
thekillerb313
Messages postés
140
Statut
Membre
-
jordane45 Messages postés 40050 Statut Modérateur -
jordane45 Messages postés 40050 Statut Modérateur -
Bonjour :)
je développe un site sur drupal 8 où l'utilisateur dès qu'il arrive sur le site a 2 choix (boutons).
En fonction de ce qu'il aura cliquer j'ai un nouveau lien dans ma navbar qui s'ajoute.
Actuellement j'arrive à ajouter le lien (avec append() ) mais seulement le changement n'intervient que dans la page d'accueil et dès que je navigue sur les autres pages ma modifs s'en va.
Faut il utiliser un cookie ? Si oui comment je peux ça en place ?
je développe un site sur drupal 8 où l'utilisateur dès qu'il arrive sur le site a 2 choix (boutons).
En fonction de ce qu'il aura cliquer j'ai un nouveau lien dans ma navbar qui s'ajoute.
Actuellement j'arrive à ajouter le lien (avec append() ) mais seulement le changement n'intervient que dans la page d'accueil et dès que je navigue sur les autres pages ma modifs s'en va.
Faut il utiliser un cookie ? Si oui comment je peux ça en place ?
A voir également:
- Affichage d'un lien dynamiquement dans ma navbar ??
- Créer un lien pour partager des photos - Guide
- Lien url - Guide
- Verificateur de lien - Guide
- Affichage double ecran - Guide
- Lien copié - Forum Mobile
5 réponses
Bonjour
Oui, il te faut stocker l'information soit via un cookie soit via le localstorage.
Dans les deux cas tu trouveras de nombreux tutos sur le net pour le faire.
Et bien entendu, une fois l'information stockée, tu devras aller la lire sur chaque page pour recharger le lien dans ta navbar.
Oui, il te faut stocker l'information soit via un cookie soit via le localstorage.
Dans les deux cas tu trouveras de nombreux tutos sur le net pour le faire.
Et bien entendu, une fois l'information stockée, tu devras aller la lire sur chaque page pour recharger le lien dans ta navbar.
Alors j'ai bien en place mon cookie mais lorsque je fais
ça met code en dur au lieu de l'interpréter ?

if (getCookie('cookieNegoce') == 'import') {
$("#menu-univers").append('<li class="nav-item"> <a href="#" class="nav-link"> Négoce </a> </li>');
} else {
if (getCookie("cookieImport") == "negoce") {
var element = document.getElementById('menu-univers');
element.append("<li class='nav-item'> <a href='#' class='nav-link'>Import-Export</a></li>");
}
}
ça met code en dur au lieu de l'interpréter ?
Re bonjour,
Déjà, pourquoi utiliser un coup l'écriture jquery.. et une autre fois le "pure" js ?
Ensuite, quel est le code html de ton "menu-univers" ?
As tu codé le site toi même ou passes tu par un cms ?
Quel est le code généré de cette page ( une fois la page de ton site affichée, faire un CTRL+u puis nous coller le résultat ) ?
Je suppose que tu utilise un framework tel que bootstrap....
Où as tu placé ton code js (celui que tu nous montres) par rapport au chargement de la lib bootstrap (ou autre framework) ?
Ton élément menu-univers .. c'est une div... ou bien c'est bien un UL ?
Car les LI se placent dans des UL ....
et dans ce cas, ça serait
Déjà, pourquoi utiliser un coup l'écriture jquery.. et une autre fois le "pure" js ?
Ensuite, quel est le code html de ton "menu-univers" ?
As tu codé le site toi même ou passes tu par un cms ?
Quel est le code généré de cette page ( une fois la page de ton site affichée, faire un CTRL+u puis nous coller le résultat ) ?
Je suppose que tu utilise un framework tel que bootstrap....
Où as tu placé ton code js (celui que tu nous montres) par rapport au chargement de la lib bootstrap (ou autre framework) ?
Ton élément menu-univers .. c'est une div... ou bien c'est bien un UL ?
Car les LI se placent dans des UL ....
et dans ce cas, ça serait
$("#menu-univers > ul").append('<li ...
<ul id="menu-univers" class="clearfix nav navbar-nav ml-md-auto">
<li class="nav-item">
<a href="/presentation" class="nav-link" data-drupal-link-system-path="node/9">Présentation</a>
</li>
<li class="nav-item">
<a href="/nos-services" class="nav-link" data-drupal-link-system-path="node/7">Nos services</a>
</li>
<li class="nav-item">
<a href="/page-actualites" class="nav-link" data-drupal-link-system-path="node/3">Actualités</a>
</li>
<li class="nav-item">
<a href="/contact" class="nav-link" data-drupal-link-system-path="node/8">Contact</a>
</li>
</ul>
Il s'agit bien d'un id placer dans mon ul pour ne pas l'ajouter dans les autres nav...
j'utilise Drupal 8 comme CMS.
//ACTION LORS DU CLIQUE SUR IMPORT
$("#import").click(function(){
//Supression COOKIE NEGOCE
document.cookie = "cookieNegoce=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
//CREATION COOKIE
var d = new Date();
d.setTime(d.getTime() + (1 * 24 * 60 * 60 * 1000));
var expires = "expires="+d.toUTCString();
document.cookie = "cookieImport" + "=" + "import" + ";" + expires + ";path=/";
jQuery('.modal').modal('hide');
});
//ACTION LORS DU CLIQUE SUR NEGOCE
$("#negoce").click(function(){
//Supression COOKIE IMPORT
document.cookie = "cookieImport=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
//CREATION COOKIE
var d = new Date();
d.setTime(d.getTime() + (1 * 24 * 60 * 60 * 1000));
var expires = "expires="+d.toUTCString();
document.cookie = "cookieNegoce" + "=" + "negoce" + ";" + expires + ";path=/";
jQuery('.modal').modal('hide');
});
//GET COOKIE
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
//CHANGEMENT DE LA NAVBAR SUR TOUTES LES PAGES
void function chargementNavbar(){
if (getCookie('cookieNegoce') == "negoce") {
var element = document.getElementById('menu-univers');
$(element).append('<li class="nav-item negoce"> <a href="#" class="nav-link">Négoce</a></li>' );
console.log('function chargementNavbar cookieNegoce');
} else {
if (getCookie("cookieImport") == "import") {
var element = document.getElementById('menu-univers');
$(element).append('<li class="nav-item import"> <a href="#" class="nav-link">Import-Export</a></li>' );
console.log('function chargementNavbar cookieNegoce');
}
}
}();
Voici mon js pour modifier le contenu sur les pages.
Ma modal est sur ma page d'accueil la modif se fait sur les autres pages sauf ma page d'accueil lorsque je clique sur Negoce ça ne fait change rien faut attendre le 2eme clique sur la modal pour le voir apparaitre.
En gros ça fonctionne sur les autres pages sauf la page d'accueil où il y a ma modal.
Lorsque que je clique sur un bouton de ma modal, le modal se ferme bien mais faut que je refresh la page accueil pour voir l'ajout du link voulu...
Et c'est pour cela que ça fonctionne pour les autres il y a un clic donc un chargement
Je ne sais pas si je suis clair
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question