Deplier / recacher texte

Résolu
yebs Messages postés 71 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 17 février 2010 - 7 janv. 2009 à 09:52
yebs Messages postés 71 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 17 février 2010 - 8 janv. 2009 à 10:07
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

Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
7 janv. 2009 à 10:40
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
3
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
7 janv. 2009 à 10:09
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 -
0
yebs Messages postés 71 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 17 février 2010
7 janv. 2009 à 10:52
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.
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
7 janv. 2009 à 11:22
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yebs Messages postés 71 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 17 février 2010
8 janv. 2009 à 09:21
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
0
yebs Messages postés 71 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 17 février 2010
8 janv. 2009 à 10:07
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...
0
Rejoignez-nous