Faire apparaitre un include sur un clic

Eléphanteau du PHP | 40 Messages

22 févr. 2007, 12:59

Bonjour,
quel est la programmation qui permet en milieu de page, sur le clic d'un lien, faire apparaitre à l'endroit désiré (par exemple sur ou sous le lien) une autre page, par exemple :

Titre
Corps du texte blablablalblalblalblalbla
Corps du texte 1 blablablalblalblalblalbla
Corps du texte 2 blablablalblalblalblalbla
Corps du texte 3 blablablalblalblalblalbla
Corps du texte 4 blablablalblalblalblalbla

On clic sur "texte 2" par exemple

Corps du texte blablablalblalblalblalbla
Corps du texte 1 blablablalblalblalblalbla
Corps du texte 2 blablablalblalblalblalbla
---------- Origine de ce texte : Le fond de cave--+
---------- Date de création : 561464---------------+ Serait une page appelée
---------- Auteur : Blabla le grand-----------------+
Corps du texte 3 blablablalblalblalblalbla
Corps du texte 4 blablablalblalblalblalbla

et si on reclic, ca fait disparaitre.
Et tout ca, sans rafraichir la page.
Est ce possible? Auriez vous un exemple de code, que je puisse modifier?
Merci beaucoup pour votre aide, et bonne journée.
-- Moteur de recherche qui agit pour l'environnement : www.ecogine.org --

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

22 févr. 2007, 13:08

Une solution utilise le Javascript et le CSS :

JS : évènement OnClick
CSS : propriété display:block et display:none

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

22 févr. 2007, 13:09

Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "Javascript, AJAX".

Eléphanteau du PHP | 40 Messages

22 févr. 2007, 13:22

Oui mais là quand je veux le mettre je met mon include, mais après pour l'enlever, l'include n'existe plus sur le page, puisqu'il a été remplacé par sa page appelée ...
-- Moteur de recherche qui agit pour l'environnement : www.ecogine.org --

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

22 févr. 2007, 14:02

Un petit exemple ?... ;)
<p>Corps du texte blablablalblalblalblalbla</p>
<p>Corps du texte 1 blablablalblalblalblalbla</p>
<p onclick="volet2.style.display=block">Corps du texte 2 blablablalblalblalblalbla</p>
<div id="volet2" style="display:none">
    <p>---------- Origine de ce texte : Le fond de cave--+</p>
    <p>---------- Date de création : 561464---------------+ Serait une page appelée</p>
    <p>---------- Auteur : Blabla le grand-----------------+</p>
</div>
<p>Corps du texte 3 blablablalblalblalblalbla</p>
<p>Corps du texte 4 blablablalblalblalblalbla</p>

HD
Mammouth du PHP | 1181 Messages

22 févr. 2007, 14:18

y a t il une astuce pour éviter JS ?
merci!
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

22 févr. 2007, 14:21

Pas à ma connaissance,
bien que je pense qu'il est possible d'obtenir ce genre d'effet en 100% CSS

Mais ce JS étant vraiment des plus légers (une simple gestion d'évènement),
je ne vois pas ce qui pourrait inciter à ne pas l'utiliser.

HD
Mammouth du PHP | 1181 Messages

22 févr. 2007, 14:30

ok merci :pouce:
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

Eléphanteau du PHP | 40 Messages

22 févr. 2007, 14:34

Finalement j'ai opté pour un affichage/désaffichage de cadres...

merci merci beaucoup de tes conseils !

Pour la fonction blocking:

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function blocking(nr)
{
if (document.layers)
{
current = (document.layers[nr].display == 'none') ? 'block' : 'none';
document.layers[nr].display = current;
}
else if (document.all)
{
current = (document.all[nr].style.display == 'none') ? 'block' : 'none';
document.all[nr].style.display = current;
}
else if (document.getElementById)
{
vista = (document.getElementById(nr).style.display == 'none') ? 'block' : 'none';
document.getElementById(nr).style.display = vista;
}
}
// -->
</SCRIPT>
Pour le CSS :
.cache
{
display: none;
}
Et pour la page :
<A CLASS="texte" HREF="#" onClick="blocking('number1'); return false;">Afficher / masquer</A>
<P CLASS="cache" ID="number1"><iframe name="I1" src="pied.php" class="texte">
Votre navigateur ne prend pas en charge les cadres insérés ou est actuellement configuré pour ne pas les afficher.
</iframe></P>
Si ca intérresse du monde ...
-- Moteur de recherche qui agit pour l'environnement : www.ecogine.org --