cacher des infos
Le
unbewusst.sein

j'ai une div qui va contenir la liste des catégories; issues d'une
requête sql.
dans le html j'affiche le nom, mais j'aimerais pouvoir lire (par DOM par
ex) l'index associé à ce nom sans le montrer.
Donc comment associer l'index à cette <li /> sans qu'il soit visible sur
le butineur ???
--
« La bouse de la vache est plus utile que les dogmes :
on peut en faire de l'engrais. »
(Mao Tsé-Toung / 1896-1976)
requête sql.
dans le html j'affiche le nom, mais j'aimerais pouvoir lire (par DOM par
ex) l'index associé à ce nom sans le montrer.
Donc comment associer l'index à cette <li /> sans qu'il soit visible sur
le butineur ???
--
« La bouse de la vache est plus utile que les dogmes :
on peut en faire de l'engrais. »
(Mao Tsé-Toung / 1896-1976)
Quand tu dis "visible", tu veux dire "affiché", je suppose.
Donc peu importe ce qui est visible dans le code source.
L'attribut "id", ça n'irait pas ?
--
Cordialement,
Pascal
Je ne vois pas le pourquoi et le comment faire ça ; tout ce que tu
envoies au navigateur, le navigateur le voie par définition après on
n'est pas obligé de rendre tout visible par un humain non informaticien
donc l'idée de l'id du li de Pascal est tout à fait appropriée...
--
Stéphane
Vérité dans un temps, erreur dans l'autre.
-+- Montesquieu -+-
ouais.
peut-être, à condition de ruser afin d'éviter des doublons.
ou une classe bidon, plus élégant sans doute :
<li id="categories_1">...
...
<li id="categories_1">
ou la même chose avec des classes :
<li class="categories_1">...
...
<li class="categories_1">
--
« A quoi bon soulever des montagnes quand il est
si simple de passer par-dessus ? »
(Boris Vian)
oui e, fait c'est pour que le contenu affiché soit plus lisible sans
infos inutiles, ce n'est pas pour le cacher en soi, dans le code je veux
dire, ca je m'en fiche.
l'idée de Pascal est pas mal en effet; mais je cherche un truc comme les
champs hidden dans une forme.
amha ca doit pouvoir se faire en css; avec un bloc; une div, n'importe
quoi en hidden.
--
« A quoi bon soulever des montagnes quand il est
si simple de passer par-dessus ? »
(Boris Vian)
c'est t'absolument t'interdit !
pas d'ids de mêmes noms !
<li>je suis normal</li>
<li><span>index 1</span>je suis spécial</li>
<li><span>index 2</span>moi z'ossi</li>
li span { display: none }
--
Stéphane Moriaux avec/with iMac-intel
oui; je sais, mon exemple est foireux !!!
Ah ben voila, c'est tout simple; je ,me disait auissi pourquoi ducros y
se décarcasse...
--
« Les seuls problèmes que l'argent peut résoudre sont
des problèmes d'argent. »
(Kin Hubbard)
Je te conseille quand même de coller une classe spécifique à ton "span"
invisible (ou plus précisément, non affiché), si tu retiens cette
solution, car cette balise pourrait te servir dans d'autres contextes.
Maintenant, on a peut-être pas assez d'éléments pour comprendre
exactement ton besoin et le recours à cette "astuce".
Par exemple, avec un contenu très hiérarchisé, voici ce qu'il m'est
arrivé de pondre, tout simplement :
<div id="cat_1">
...
</div>
<div id= cat_2>... etc.
ou encore :
<ul id="cat_1">
</ul>
<ul id="cat_2">... etc.
Par contre, dans une suite de résultats présentés en ligne (en
l'occurrence des petites annonces pro), si chaque résultat est affecté à
une catégorie et que plusieurs résultats peuvent faire partie de la même
catégorie (en l'occurrence la rubrique de l'annonce), on ne peut plus
utiliser les schémas précédents.
Ce que j'ai fait alors, c'est identifier chaque résultat par une
concaténation de son identifiant propre avec celui de sa catégorie.
Cela permet ensuite toute manipulation, côté client ou serveur, comme du
tri, masquage, etc.
Exemple, avec le schéma id="annonce_idRubrique_idAnnonce" :
<div id="listeAnnonces">
... etc.
</div>
Très facile, ensuite de masquer, par javascript, les annonces de la
rubrique "1", par exemple.
Et aucune chance que deux identifiants soient identiques !
--
Cordialement,
Pascal
c'est très simple, dans une bd j'ai une table 'categories' avec deux
champs :
idx INTEGER NOT NULL
name TEXT NOT NULL
ce que je présente c'est "name" mais je souhaite avoir aussi "idx"
(l'index) de manière à pouvoir présenter une autre table "items" dont
chaque item appartient à une catégorie et dans cette dernière table,
c'est le champs "cat" qui donne l'index de la catégorie.
ainsi dans la seconde colonne (visuellement, en partant de la gauche) je
peux préenter tous les items qui appartient à cette catégorie en faisant
une requête sql du genre :
'SELECT * FROM items WHERE cat=idx;"
l'idx étant fourni par le li où on a cliqué moyennant petite manip dom.
je n'ai pas ce problème car je répète le même principe au niveau des
items où j'aurai "une variable cachée" qui me donnera son index.
je n'ai pas besoin de cela car ma recherche se fait par sql via php et
xhr.
la solution :
<li class="categorie">Formulaires<span class="cache">1</span></li>
avec
span.cache { hidden };
me va très bien.
vu qu"autour de "Formulaires<span class="cache">1</span>" je vais mettre
un a href, ou onclick sur le li qui va m'envoyer this dans lequel je
pourrai trouver le contenu du span cache et donc l'index.
--
« C'est aujourd'hui que commence le reste de ta vie. »
(Dale Carnegie)
ce que j'ai mis dans le code php :
echo ' <li class="categorie" onlick="selectCat(this);return
false">'.$row['name'].'<span
class="cache">'.$row['idx'].'</span></li>'.$lf;
ce qui donne en html :
<li class="categorie" onlick="selectCat(this);return
false">Formulaires<span class="cache">0</span></li>
la function selectCat( n'est pas appellée :
function selectCat(o) {alert("toto")
alert(o.getElementsByTagName('span')[0].text);
}
--
« C'est aujourd'hui que commence le reste de ta vie. »
(Dale Carnegie)
Tu veux peut-être dire :
span.cache { visibility: hidden; }
Mais dans ce cas, le contenu du <span> prendra sa place dans le flux !
Si tu veux qu'il ne soit pas affiché (différent de "invisible"), il faut
écrire :
span.cache { display: none; }
Je crois avoir compris, mais alors il me semble plus simple de faire :
<ul class="categories">
<li id="cat_1">Formulaires</li>
...
</ul>
Au niveau CSS, déjà, tu remonte la classe au conteneur, ça évite les
répétitions inutiles, avec :
ul.categories li {...ton style d'item de liste...}
Ensuite, au niveau HTML et JS, tu ne devrais pas avoir de risque de
doublons sur les attributs "id", non ?
Enfin, avec JS, tu auras beaucoup plus de facilité (et de rapidité) à
récupérer l'id du <li> que le contenu du <span>, pour le balancer à XHR
ou autres.
Je pars du principe que tu auras géré un "onclick" sur chaque <li>.
Si tu préfère ajouter un lien explicite, alors il vaut mieux mettre l'id
sur le lien <a>, plutôt que sur le <li>.
--
Cordialement,
Pascal