1

Bonjour , après moult recherches sur internet , je désire afficher une <div> dans son intégralité grâce au contenu d'une variable, malheureusement tout les tuto de manipulations de <div> ne concernent le même et unique exemple : afficher / masquer grâce a un bouton/ chaeckbox / combobox.


voici un extrait de mes essais foireux :



<?php if(isset($_SESSION['ST'])) { if($_SESSION['ST'] == "") { ?> <script type="text/javascript"> function radioclicktest { document.getElementById('div1').style.display = ('none' : 'block'); } </script> <?php } else { echo "epic fail"; } } ?> <script type="text/javascript"> document.getElementById("div1").style.display='none'; document.getElementById("div1").style.display='none':'block'; document.getElementById("div1").style.display=('block':'none'); document.getElementById("div1").style.display=('block'='none'); document.getElementById("div1").style.display=('none':'block'); document.getElementById("div1").style.display=('none'='block'); document.getElementById("div1").style.display='block'; document.getElementById('div1').style.display = (? 'none':'block'); </script> <script type="text/javascript"> function radioclicktest (b) { document.getElementById('div1').style.display = (b!=1? 'none':'block'); } </script> <input type="radio" name="test1" value="1" onclick="radioclicktest(1);" id="radio3">&nbsp;<label for="radio3">affiche</label></li> <input type="radio" name="test1" value="2" onclick="radioclicktest(2);" id="radio3">&nbsp;<label for="radio3">masque</label></li> <div id="div1" style="display:none"> <fieldset> <legend>Option support de table pour bureau</legend><br> <li><?php echo $_SESSION['ST']; ?><br></li><br> </fieldset><br> </fieldset> </div>



Le comble du comble , c'est que le seul test qui fonctionne est celui du cochage de bouton ... Je suis très médiocre en programmation , ce qui peux vous paraitre très simple pour vous peut se révéler titanesque pour moi , ne prenez donc pas ce code de très bas niveau pour une mauvaise blague smile .

Au grand plaisir de savoir que certains ont eu le courage de relire le torchon qui incarne ce que je fais de mieux.
piloucyril
Très grand médiocre.

2

Salut happy
piloucyril (./1) :
document.getElementById("div1").style.display='none';
document.getElementById("div1").style.display='none':'block';
document.getElementById("div1").style.display=('block':'none');
document.getElementById("div1").style.display=('block'='none');
document.getElementById("div1").style.display=('none':'block');
document.getElementById("div1").style.display=('none'='block');
document.getElementById("div1").style.display='block'; document.getElementById('div1').style.display = (? 'none':'block');
Ce bloc de code me semble vraiment suspect cheeky

3

Le but étant d'afficher l'id masqué de base

=> <div id="div1" style="display:none">


Et énervé de devoir modifier / sauvegarder / switcher la page / voir que cela ne marche pas / re switcher / re modifier ect ...

J'ai utilisé le théorème de la flemme qui consiste a faire un pavé de lignes , pour voir si l'une d'entre elle était valable ( ce qui n'est pas le cas )

Le but étant de trouver La ligne fonctionelle au bout du compte.
Très grand médiocre.

4

Erreur trouvée :

Il falais écrire :

<div id="div1" style="display:block">

au lieu de :

<div id="div1" style="display:none">

Temps perdu pour un mot : 3 heures chinois
Très grand médiocre.

5

Fausse bonne solution , le display:block ne masque tout simplement pas la div ...
Très grand médiocre.

6

Bonjour,

Est ce que tu pourrais être plus précis sur ce qui ne fonctionne pas ?

Qu'est ce que tu veux faire ? Tu as l'air de vouloir afficher ou pas une div. Mais tu trouves que les tutos qui parlent de l'utilisation d'un bouton ou autre élément ne te conviennent pas, pourquoi ?

En fait si j'ai bien compris tu voudrais afficher ou na pas afficher une div au chargement de la page en fonction d'une variable. Ok mais c'est quoi ta variable, c'est une variable php ou une variable javascript ? C'est pas vraiment pareil ...

Sinon quand tu mets des blocs comme celui que Pen^2 a mis en évidence (ie quand tu affectes plein de fois la même variable), ça ne sert à rien. Seule la dernière ligne fonctionne.

En javascript, si tu veux que ton code soit exécuté au chargement de la page, à ma connaissance il faut que tu le mettes dans une fonction spécifique, sinon il ne s’exécute pas. Tu trouveras plus d'infos ici : http://www.alsacreations.com/astuce/lire/79-comment-lancer-plusieurs-fonctions-javascript-au-chargement-dune-page.html

7

pokito (./6) :
à ma connaissance il faut que tu le mettes dans une fonction spécifique, sinon il ne s’exécute pas
mmm ?
Non, pas que je sache :
<html><body>de l'html<br>
<script>alert("plop");</script>
encore de l'html
</body></html>
devrait fonctionner.

8

piloucyril (./1) :
document.getElementById('div1').style.display = ('none' : 'block');
Pour autant que je sache, ça ne veut rien dire.
La syntaxe de l'opérateur unaire (?smile est :
bool ? valeurSiVrai : valeurSiFaux
ex :
bool isTrue= true ;
int a= isTrue 
         ? 1
         : 2 ;
a est étal à 1 si isTrue est true, 2 sinon.



Sinon, je ne suis pas contre plus d'explications, effectivement.
Si tu veux cacher un contenu et que tu le sais dès le PHP, autant ne pas écrire l'html directement plutôt que de faire appel à du JS.

9

Explications :

Ma <div1> ne dois que se masquer ( au chargement de la page ) si et seulement si $_SESSION['ST'] == ""

C'est tout happy
Très grand médiocre.

10

Pourquoi ne pas utiliser jquery? $('#div1').hide(); et c'est reglé.

Sinon<?php if (empty($_SESSION['ST'])) { ?> <script>document.getElementById('div1').style.visibility='hidden';</script> <?php }

11

Merci pour l'aide nagasia ainsi que tout les autres, le problème c'est que si je prends le code suivant

<?php if (empty($_SESSION['ST'])) { ?> <script> document.getElementById("div1").style.visibility = 'hidden'; </script> <?php } ?> <div id="div1"> <fieldset> <legend>Option support de table pour bureau</legend><br> <li><?php echo $_SESSION['ST']; ?><br></li><br> </fieldset><br> </fieldset> </div>

Le souci est que ma <div1> ne se masque pas
Sauf si je le remplace par <div id="div1" style="display:none">

Et la il se masque tout le temps
Très grand médiocre.

12

Ah oui, là tu exécutes le JS avant le code HTML, donc en gros tu lui demandes de cacher un truc qui n'existe pas (encore). Donc soit tu exécutes ton code une fois le DOM chargé (grâce à window.onload par exemple) où alors tu utilises jQuery grin

13

Ah ... euh ... et ça marche pas si je pose la div et son contenu avant le JS ? #modfus#


je go tester ça sinon je vais voir pour du window.onload ( étant un gros noob en jQuery ).
Très grand médiocre.

14

piloucyril (./13) :
Ah ... euh ... et ça marche pas si je pose la div et son contenu avant le JS ? #modfus#



Vous allez rire , ça marche triso
Très grand médiocre.

15

au pire affiche le source de la page ici, et tu verras comment sont affichés les "Inactif : XX secondes" sur les pseudos... c'est un div, il suffit juste de ne pas le mettre en float...
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

16

piloucyril (./14) :
piloucyril (./13) :
Ah ... euh ... et ça marche pas si je pose la div et son contenu avant le JS ? #modfus#



Vous allez rire , ça marche triso

Bah oui forcément, vu que le div est déclaré avant l'exécution du code JS smile

17

Par contre je galère toujours car le fait de juste cacher la div donne ceci :

IWs5


un gros espace peu esthétique et vu que j'ai pleins de div qui serons masqués , le résultat sera pas beau...


Donc j'ai décidé de remplacer le visibility:"hidden" par display="none"

<div id="div1"> <fieldset> <legend>Option support de table pour bureau</legend><br> <li><?php echo $_SESSION['ST']; ?><br></li><br> </fieldset> </div> </fieldset> <?php if (empty($_SESSION['ST'])) { ?> <script> document.getElementById("div1").style.display="none"; </script> <?php } ?>


Et tout est réglé smile Merci tout le monde pour votre aide grin
Très grand médiocre.

18

et en conditionnant le style par défaut par ta variable ?
<style>
.pop {
	POSITION: absolute; <?PHP if ($_SESSION["prout"]="caca") {echo "VISIBILITY: hidden";}else{echo "VISIBILITY: visible";}?>
}
</style>
<DIV class=pop id=toto>coucou qui est là</DIV>
...
<DIV id=survol onMouseOver="document.getElementById('topdeck').style.visibility='visible';" onmouseout="document.getElementById('topdeck').style.visibility='hidden';">passes ta souris !</div>
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

19

j'ai testé mais ça foire au niveau du .pop


Parse error: syntax error, unexpected ')' in C:\wamp\www\exemple\autre test de div.php on line 17
Très grand médiocre.

20

erf, la parenthèse avant ?> est en trop
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

21

(par contre, vu ton shotscreen plus haut ça va pas aller, j'utilise ça sur tifr pour les popups mais c'est à position "flotante")

et si tu regardes le code de ti-fr, je viens de voir que y'a une faute, au lieu de "text/javascript", y'a "test/javascript" cheeky
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

22

grin pas de problème je fais ça sur une page de test que je garde de coté pour plus tard

d'ailleur


==>


<?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html lang="fr"> <head> <title>Configurateur Collectif : Type de fermeture</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="jquery.js"></script> <link rel="stylesheet" href="style.css" /> </head> <body> <style> .pop { POSITION: absolute; <?PHP if ($_SESSION["prout"]="caca") {echo "VISIBILITY: hidden";}else{echo "VISIBILITY: visible";})?> } </style> <DIV class=pop id=toto>coucou qui est là</DIV> ... <DIV id=survol onMouseOver="document.getElementById('topdeck').style.visibility='visible';" onmouseout="document.getElementById('topdeck').style.visibility='hidden';">passes ta souris !</div> </body> </html>


Ne semble pas fonctionner la fonction pop passe pas
Très grand médiocre.

23

y'a pas de fonction pop là, c'est juste une classe css
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

24

ah ...

dehors

En tout cas merci de l'aide , je mettrais ce topic jour pour vous faire part de mon avancement smile
Très grand médiocre.

25

Ce que je ne comprends pas, c'est pourquoi tu génères de l'html via du php alors que tu dois le cacher : autant ne pas le générer du tout, non ?

26

et sinon, -topdeck+toto
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

27

Pen^2 (./25) :
Ce que je ne comprends pas, c'est pourquoi tu génères de l'html via du php alors que tu dois le cacher : autant ne pas le générer du tout, non ?

"par défaut", il est ptet question de l'afficher suite à une action...
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

28

Peut-être, oué.

29

Si et seulement si on ne prends pas de support pour bureau smile
Très grand médiocre.

30

Salut les amis, suite a une péripétie d’événements sans intérêt je me retrouve contraint de modifier ceci :

function liste(b)
{
document.getElementById('div1').style.display = (b!=1?'none':'block');
}


en ceci

function liste(b)
{
document.getElementById('div1').style.display = ((b!=1?'none':'block')||(b!=2? 'none':'block'));
}


Mais le problème (mhudada!) ceci ne marche pas

le but est ici d'utiliser l'opérateur "ou" pour ( si on n'a pas cliqué sur le bouton 1 ou sur le bouton 2 , la div ne s'affiche pas ) j'ai pourtant respecté le schéma suivant sur http://www.commentcamarche.net/contents/584-javascript-les-operateurs de la manière suivante ((expression1)||(expression2)) mais rien n'y fait , je suis concsient que mon problème est un problème de sytaxe mais j'ai beau essayer des dizaines de façons différentes d'écrire ceci , j'obtiens un résultat nul ou non désiré , une âme charitable pourrais bien me dire ce qui ne vas pas dans cette ligne de code ? confus
Très grand médiocre.