Help au sujet de div ( afficher cacher) [Résolu]

Signaler
Messages postés
39
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
11 avril 2010
-
Messages postés
39
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
11 avril 2010
-
Bonjour à tous ( et je m'excuse par avance pour mon Franchaich qui est pas bien Franchaich )

alors voila le problème...
je suis en train de créer une sorte de site modifiable directement en ligne...
tout les textes sont stoké dans une bd.

J'ai un lien éditer qui permet après clic, d'afficher une div pour modifier le titre1 (div qui s'affiche en dessous berck), j'oubliais, le lien éditer se transforme en lien fermer quand la div est ouverte et donc permet de refermer la div de modification du titre)
mon soucis est que la div de modification s'affiche sous le titre original...

je cherche en vain à se que quand on clique sur éditer, le texte original disparesse et affiche à la place la div ( avec le lien fermer) qui permet la modification du texte..

j'ai fait pleins d'essai mais les solutions et exemples proposés sur internet propose bien de faire afficher une div mais garde le lien édit..

en gros pour essayer d'être claire ( ouais, je sait, c'est pas mon fort ) il faudrais avoir 2 div l'une l'ié à l'autre de manière à se que quand on appel la div2 pour modifier le titre, la div 1 se cache ( bouuu la pas belle)


il faut savoir aussi que je compte proposer la modification de tous les textes ex:

Titre 1
Contenu text1

Titre2
Contenu text2.....

un exemple pour le titre1

<? echo $contenu2 ; ?> [# éditer]


<form name="contenu2" action="modif_contenu2.php" method="post" id="editer">
<?php echo $contenu2; ?> 
[# Transformer] 

<textarea name="contenu2" id="areaInvisible"><?php echo $contenu2; ?></textarea> 

<script language="JavaScript" type="text/javascript">
<!--
function CopyContent(sHtmlSource, sTextTarget)
{
document.getElementById(sTextTarget).innerText = document.getElementById(sHtmlSource).innerHTML;
}
//-->
</script>
                                        [# Enregistrer]
                                      </form>
                                    


merci pour votre aide car la je nage et j'ai même perdu pied ;)

34 réponses

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
mettre dans une fonction, c'est plus clair...



<script type="text/javascript">
function trait()
{ if ( document.getElementById('contenu2').style.display=='block' )
{ document.getElementById('lien_contenu2').innerHTML='éditer';
document.getElementById('contenu2').style.display='none'
}
else { document.getElementById('contenu2').style.display='block';
document.getElementById('lien_contenu2').innerHTML='fermer';
}
}
</script>
[javascript:void(trait()); éditer]


exemple



Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
ah... les div sont "liés" 2 à 2 !
et la 2ème de "chaque groupe"
ne fait que "remplacer" la 1ère ?
on ne la cache plus alors ???

appel( lien, div affiché, div qui va remplacer )

fonction ( lien, div affiché, div qui va remplacer )
si style.div affiché = inline
style.div affiché = none
style.div de remplacement = inline
lien = fermer
sinon
style.div affiché = inline
style.div de remplacement = none
lien = éditer
fin si

mais toujours loin d'être sur que
c'est ce que vous voulez....
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
ben ??? vous avez votre script initial
puis modifié !? non ?
et :
appel( lien, div affiché, div qui va remplacer )

fonction ( lien, div affiché, div qui va remplacer )
si style.div affiché = inline
style.div affiché = none
style.div de remplacement = inline
lien = fermer
sinon
style.div affiché = inline
style.div de remplacement = none
lien = éditer
fin si
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
Bonjour,
>>l faudrait avoir 2 div l'une liée à l'autre de
>>manière à ce que, quand on appelle la div2 pour
>>modifier le titre, la div 1 se cache
dans la fonction appelée pour modifier le
titre de div 2 faire votre_div1.style.display="none"
Cordialement [mon Site] [M'écrire] Bul
Messages postés
39
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
11 avril 2010

Yes une réponse merci Bul3..
tu n'aurais pas un exemple car le javascript et compagnie...
merci pour ta réponse
Messages postés
39
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
11 avril 2010

j'oubliais de dire, j'ai pas encore mis de fonctions javascript dans le head ou de div pour le titre1.. car comme dit, les choses que j'ai essayer ne me conviennes pas.
Messages postés
39
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
11 avril 2010

Hello, alors j'ai fait plusieurs essais en ayant rajouter une balise un div au début la ou s'affiche le titre normale se qui fait donc :

<? echo $contenu2 ; ?>

puis dans le système en dessous qui gère mon effet de lien éditer/fermer ainsi que la div pour la modification du texte :

[# éditer]



j'ai donc essayer d'inclure la fonction donné par Bul3 à savoir :
contenu.style.display="none" ou contenu.style.display='none' ou la mêm chose mais avec == à la place de = etc.etc.. mais je n'arrive à rien :(
merci pour votre aide.
Messages postés
39
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
11 avril 2010

personne pour me donner un indice? je suis perdu !
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
ça convient ou pas
oui, oui () le dire aurait été bien.
si, si () ça serait bien de le dire.
non, non (), comment vous faites, ça devrait fonctionner.
Messages postés
39
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
11 avril 2010

Super Mr Bul3...
tout marche nickel exactement comme je le voulais ( chacun son métier ;)

il me reste une question ( même si sa paret bête comme question)

l'exemple que tu m'a donner est pour la gestion des div "contenu1 et contenu2)

ma question est vue que je doit avoir autant de div que de partie ou le texte est modifiable ( on vas dire entre 5 et 10 par page) je doit refaire l'exemple pour chaque div?
ex 1 pour le titre, un pour le contenu2, un pour le titre3, un pour le contenu 3.... ?
c'est bien cela?

en tout cas, merci énormément pour cette fonction
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
>>je doit refaire l'exemple pour chaque div?
"surtout pas",
"il suffit" de passer ces div en paramètres

[javascript:void(trait(this,'contenu2')); éditer]

deux

[javascript:void(trait(this,'contenu3')); éditer]

trois

...

function trait( lien, iddiv )
{ if ( document.getElementById(iddiv).style.display=='block' )
{ document.getElementById(lien).innerHTML='éditer';
document.getElementById(iddiv).style.display='none'
}
else { document.getElementById(iddiv).style.display='block';
document.getElementById(lien).innerHTML='fermer';
}
}

par exemple.... ou "pas loin"
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
mea culpa !

function trait( lien, iddiv )
{ var d=document.getElementById(iddiv);
if ( d.style.display=='block' )
{ lien.innerHTML='éditer';
d.style.display='none'
}
else { d.style.display='block';
lien.innerHTML='fermer';
}
}

ça ira probablement un peu mieux !
Messages postés
39
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
11 avril 2010

ok mais il me reste un petit souci la
jem me rend compte que c'est " presque ca"

en effet, la, en gros on à un lien qui permet d'ouvrir une div tout est nickel..
mais à la base, il doit y avoir une autre ?

ex: ma div1 ( mon texte bla bla dedans ) bouton éditer
on clic sur éditer
la dive s'affiche à la place de la div un ( comme actuellement)..
ou alors c'est moi qui ai loupé une marche sur l'escalier du honheur...
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
navré... pas compris.
j'avais proposé "n liens pour n divs"
cru comprendre que c'était ce qu'il fallait (?)
Messages postés
39
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
11 avril 2010

Attand
Messages postés
39
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
11 avril 2010

juste pour infos, la fonction fermer ( le lien ) ne s'affiche plus ( sa reste éditer) mais la fonction marche, la div se referme
Messages postés
39
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
11 avril 2010

en faite ( je vais essayer d'être claire)
se que tu m'avais fait à la base est bon dans le principe

mais en gros, je voudrais avoir une div1 avec le contenu de la base ( d'ou le <?php echo $contenu1; ?>) en dessous le bouton éditer

puis, quand tu clique sur éditer, j'ai la div2 qui s'affiche à la place de la div1 ( je remet le <?php echo $contenu1; ?> ainsi que du code etc.etc dedans ainsi que le lien enregistrer etc) et en dessous le lien fermer.

c'est pour sa que j'avais mis mon deuxième poste il était p'tetre plus claire ;)
Messages postés
39
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
11 avril 2010

heuuu le lien éditer ne doit être que sur la div1 et le lien fermer sur la div2 pas les deux en même temps quoi
au pir même un lien à chaque div est aussi bien qu'un lien qui se transforme quand la div est ouverte ou fermer...
j'espère que tu aura réussi à me comprendre ;)
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
euh... pouvez-vous "réexprimer" ?
il y a "n" liens ou pas ?
"n" div associés ou pas ?
ces div se cachent/s'affichent sur les click
des liens associés ou pas ?
le click sur le lien 2 cache-t-il le div
associé au lien 1 ou pas ?
...
handicapé nasal (**) vous avez tout pour
faire normalement, ce n'est qu'une question
de définition de ce qu'il faut faire...


(**) néanmoins.
Messages postés
39
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
11 avril 2010

ok alors :