Deplier / recacher texte

Résolu
Signaler
Messages postés
71
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
17 février 2010
-
Messages postés
71
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
17 février 2010
-
bonjour,
on ne peut pas dire que je soit "débutant" en PHP, et pourtant, je bloque sur un truc tout bête. Je sais que j'ai fait ça il y a longtemps, mais ça ne revient pas.. mais encore une fois je sais que ce n'est pas grand chose.

Explications :
Je récupère des articles de ma BDD, chacun ayant un titre, un texte et une date.
Je voudrais n'afficher que les titres, pour lesquels j'appose un lien... quand on clique sur ce lien, le texte se déplie sous le titre en question.
Pour exemple, à l'image de ce site : http://www.gamekult.com/blog/squalllion/default.html?cat=11807 qui résume exactement ce que je veux faire.

Tout de suite j'ai bien mes titres les uns à la suite des autres,  quand je clique dessus, le texte en question apparait bien mais pas entre chaque titre mais en dessous de toute ma liste de titres. Je voudrai que mon texte s'interpose entre les titres + penser un système qui recache le texte si je clique sur un autre titre ou que je clique sur le titre du texte déjà déplié

En gros il me faudrais un système qui déplie et replie du texte.

J'ai beau rentrer, sortir,puis re-rentrer dans les boucles... je n'arrive pas a concevoir la chose.

Merci de m'aiguiller.

A bientôt

6 réponses

Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
toggleview modifiera l'attribut display d'un conteneur... Sinon tu regardes dans certains fmk js (scriptaculos,jquery,...)




Il vaut mieux poser une question et passer pour bête que le rester toute sa vie


 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Salut,

C'est en javascript qu'il faut faire ça.
Puisque tu as un lien qui correspond pile poil à ce que tu veux faire, pourquoi ne pas s'inspirer du code ?

<div id="270977_open"><a class="spoilerlink" href="#"
onclick='toggleview("270977_closed");toggleview("270977_open");return false;'>
Cliquez pour lire le texte caché</a></div>
[...]

Reste plus qu'à récupérer la fonction toggleview et générer en php le code html qui va bien.

Kohntark -
Messages postés
71
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
17 février 2010

merci pour ces indications...
je vais alors chercher du côté JS, on verra bien ce que ça donne, je vous tiendrai au courant.

en tout cas, je suis ravi de voir que je ne me suis pas fait descendre pour cette question (en tout cas pas encore...).
J'aime bien ta petite signature Teclis01 !

Après, il me semblait que je pouvais faire ça d'un point de vue beaucoup + basique uniquement en PHP, sans avoir à passer par du JS...

A bientôt.
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
Merci :)

Et si tout ce qui appartient à l'ergonomie d'un site c'est du js! enfin ... on a aussi flash, ... mais de manière générale c'est JS ! Vàlà

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Messages postés
71
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
17 février 2010

Scriptaculous !
c'est magnifique !
je ne connaissais pas du tout !
et ça devrait faire l'affaire pour ce que je voulais !

merci beaucoup !
A bientôt sur codes-sources.com
Messages postés
71
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
17 février 2010

Bon bon bon....
j'ai un nouveau problème...
ça marche nikel, enfin... pas tout a fait.

j'ai mon petit script JS (que j'ai trouvé en cherchant un peu) :
<script language="javascript">
function showonlyone(thechosenone) {
       var newboxes = document.getElementsByName("newboxes");
       for(var x=0; x<newboxes.length; x++) {
               if (newboxes[x].id == thechosenone) {
                       newboxes[x].style.display = 'block';
               }
               else {
                       newboxes[x].style.display = 'none';
               }
       }
}
</script>

et par exemple ce code html :

        [javascript:showonlyone('newboxes1'); collapse]

       
Div #1

    [javascript:showonlyone('newboxes2'); collapse]

   
Div #2

        [javascript:showonlyone('newboxes3'); collapse]

       
Div #3

Donc là, il n'y a aucun souci, tout fonctionne correctement.
le premier lien est ouvert, les autres sont fermés, et quand je clique sur le 2ème ou 3ème lien, le 1 er se referme et ainsi de suite.

Par contre, quand je fais ma relation avec ma BDD et que j'intègre tout ça dans une petite boucle while, j'ai un problème :
TOUS les liens sont OUVERTS, et il faut que je clique sur l'un d'entre eux pour revenir à une situation normale, où un seul est ouvert et quand on clik sur un autre, celui qui était ouvert se referme, etc...
Donc ça marche, sauf lors du 1er affichage !

voici ma boucle :
<?php
    $req=mysql_query("SELECT * FROM media ORDER BY date DESC");
    while ($res=mysql_fetch_array($req))
    {
        $id=$res['id'];
        $date=$res['date'];
        $titre=stripslashes(UTF8_decode($res['titre']));
        $texte=stripslashes(UTF8_decode($res['texte']));
       
        echo "<tr><td>";
        echo "
";
        echo "".$titre."
";
        echo "
".$texte."
";
        echo "</td></tr>";
    }
?>

une idée ???
Merci d'avance...