Javascript: mêmes options après rechargement
Résolu/Fermé
neeteex
Messages postés
76
Date d'inscription
samedi 9 mai 2009
Statut
Membre
Dernière intervention
20 septembre 2024
-
30 sept. 2009 à 20:27
neeteex Messages postés 76 Date d'inscription samedi 9 mai 2009 Statut Membre Dernière intervention 20 septembre 2024 - 1 oct. 2009 à 20:49
neeteex Messages postés 76 Date d'inscription samedi 9 mai 2009 Statut Membre Dernière intervention 20 septembre 2024 - 1 oct. 2009 à 20:49
A voir également:
- Javascript: mêmes options après rechargement
- Telecharger javascript - Télécharger - Langages
- Afficher un tableau javascript en html ✓ - Forum Javascript
- Javascript echo ✓ - Forum PHP
- Erreur #125 javascript - Forum Mozilla Firefox
- A javascript error occurred in the main process - Forum Handicap / Accessibilté
11 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
1 oct. 2009 à 20:28
1 oct. 2009 à 20:28
Voilà:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr"> <head> <title>test</title> <script language="JavaScript"><!-- //avec la methode display= none /block les div ne prennent pas de place si non visibles //avec la methode visible=hidden / visible les div même non affichés occupent leur emplacement function setCookie(sName, sValue) { var today = new Date(), expires = new Date(); expires.setTime(today.getTime() + (365*24*60*60*1000)); document.cookie = sName + "=" + sValue + ";expires=" + expires.toGMTString(); } function getCookie(sName) { var cookContent = document.cookie, cookEnd, i, j; var sName = sName + "="; for (i=0, c=cookContent.length; i<c; i++) { j = i + sName.length; if (cookContent.substring(i, j) == sName) { cookEnd = cookContent.indexOf(";", j); if (cookEnd == -1) { cookEnd = cookContent.length; } return decodeURIComponent(cookContent.substring(j, cookEnd)); } } return null; } function changeDiv(){ if(document.getElementById('mondiv2').style.display == 'none') { montrer('mondiv2'); cacher('mondiv1'); } else { cacher('mondiv2'); montrer('mondiv1'); } } function cacher(lobjet){ document.getElementById(lobjet).style.display = 'none'; //pas besoin de mettre un autre cookie, la fonction montrer va "ecraser" l'éxistant avec la nouvelle valeur } /** rend Visible l'objet passé en paramètre */ function montrer(lobjet){ document.getElementById(lobjet).style.display = 'block'; setCookie('div_visible', lobjet); //on memorise dans le cookie quel est le div visible } //fonction qui va voir le cookie au rechargement de la page et afficher celui choisi auparavent function init_div(nom){ var div_memo= getCookie('div_visible'); //alert("Div memo cookie: "+div_memo); if(div_memo==null){ //par defaut au premier chargement on affiche le div1 montrer('mondiv1'); cacher('mondiv2'); }else{ if(div_memo=='mondiv1'){ montrer('mondiv1'); cacher('mondiv2'); }else if(div_memo=='mondiv2'){ montrer('mondiv2'); cacher('mondiv1'); } } } --></script> </head> <body onLoad="init_div();"> <div id="mondiv1">mon div 1</div> <div id="mondiv2">mon div 2</div> <input value="changer de div visible" onclick="changeDiv()" type="button"> </body> </html>
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
30 sept. 2009 à 20:37
30 sept. 2009 à 20:37
Bonjour,
Renseigne-toi sur les cookies. C'est, je pense, la meilleure solution pour faire ce que tu souhaites. Malheureusement, je ne maîtrise pas leur utilisation en javascript ; il y a des bouts de code qui traînent sur le net qui font ça très bien.
Xavier
Renseigne-toi sur les cookies. C'est, je pense, la meilleure solution pour faire ce que tu souhaites. Malheureusement, je ne maîtrise pas leur utilisation en javascript ; il y a des bouts de code qui traînent sur le net qui font ça très bien.
Xavier
neeteex
Messages postés
76
Date d'inscription
samedi 9 mai 2009
Statut
Membre
Dernière intervention
20 septembre 2024
1
30 sept. 2009 à 20:40
30 sept. 2009 à 20:40
Super piste je pense ! Merci beaucoup !
si quelqu'un qui maitrise un peu peut me mettre un bout de code d'exemple...
Sinon je chercherai, mais la jungle des javascript est dense ;)
si quelqu'un qui maitrise un peu peut me mettre un bout de code d'exemple...
Sinon je chercherai, mais la jungle des javascript est dense ;)
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
30 sept. 2009 à 22:20
30 sept. 2009 à 22:20
pourquoi tu veut garder la div cliquée au rechargement ?
le javascript s'execute coté poste client, donc pas besoin de rechargement..?
si vraiment tu peut faire un truc comme ça il te faudra passer par l'ajax et tu passe le style de ta div en parametre.
si tu maitrise pas l'ajax , une autre solution pourrait etre l'utilisation des champs cachés et du php ,dans lequel tu insere le style choisi , visible ou hidden et tu recupere la valeur en en post.
ce ne sont que des idées, mais l'ajax me semble le mieux
le javascript s'execute coté poste client, donc pas besoin de rechargement..?
si vraiment tu peut faire un truc comme ça il te faudra passer par l'ajax et tu passe le style de ta div en parametre.
si tu maitrise pas l'ajax , une autre solution pourrait etre l'utilisation des champs cachés et du php ,dans lequel tu insere le style choisi , visible ou hidden et tu recupere la valeur en en post.
ce ne sont que des idées, mais l'ajax me semble le mieux
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
neeteex
Messages postés
76
Date d'inscription
samedi 9 mai 2009
Statut
Membre
Dernière intervention
20 septembre 2024
1
30 sept. 2009 à 23:31
30 sept. 2009 à 23:31
EDIT : le commentaire avait sauté.
Je disais que l'intérêt était de garder le même aspect pour chacune des pages du site contenant la même partie.
Et aussi que le code ci-dessous qui marche pas devait approcher quelque chose de possible.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
<head>
<title>test</title>
<script language="JavaScript"><!--
function setCookie(sName, sValue) {
var today = new Date(), expires = new Date();
expires.setTime(today.getTime() + (365*24*60*60*1000));
document.cookie = sName + "=" + sValue + ";expires=" + expires.toGMTString();
}
function getCookie(sName) {
var cookContent = document.cookie, cookEnd, i, j;
var sName = sName + "=";
for (i=0, c=cookContent.length; i<c; i++) {
j = i + sName.length;
if (cookContent.substring(i, j) == sName) {
cookEnd = cookContent.indexOf(";", j);
if (cookEnd == -1) {
cookEnd = cookContent.length;
}
return decodeURIComponent(cookContent.substring(j, cookEnd));
}
}
return null;
}
function changeDiv()
{
if(document.getElementById('mondiv2').style.visibility == 'visible')
{
montrer('mondiv1');
cacher('mondiv2');
}
else
{
cacher('mondiv1');
montrer('mondiv2');
}
}
function cacher(lobjet)
{
document.getElementById(lobjet).style.visibility = 'hidden';
setCookie(lobjet, 'hidden');
}
/** rend Visible l'objet passé en paramètre */
function montrer(lobjet)
{
document.getElementById(lobjet).style.visibility = 'visible';
setCookie(lobjet, 'visible');
}
--></script>
</head>
<body>
<div id="mondiv1" style="visibility:" getCookie(mondiv1) >mon div 1</div>
<div id="mondiv2" style="visibility:" getCookie(mondiv1) >mon div 2</div>
<input value="changer de div visible" onclick="changeDiv()" type="button">
</body>
</html>
Je disais que l'intérêt était de garder le même aspect pour chacune des pages du site contenant la même partie.
Et aussi que le code ci-dessous qui marche pas devait approcher quelque chose de possible.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
<head>
<title>test</title>
<script language="JavaScript"><!--
function setCookie(sName, sValue) {
var today = new Date(), expires = new Date();
expires.setTime(today.getTime() + (365*24*60*60*1000));
document.cookie = sName + "=" + sValue + ";expires=" + expires.toGMTString();
}
function getCookie(sName) {
var cookContent = document.cookie, cookEnd, i, j;
var sName = sName + "=";
for (i=0, c=cookContent.length; i<c; i++) {
j = i + sName.length;
if (cookContent.substring(i, j) == sName) {
cookEnd = cookContent.indexOf(";", j);
if (cookEnd == -1) {
cookEnd = cookContent.length;
}
return decodeURIComponent(cookContent.substring(j, cookEnd));
}
}
return null;
}
function changeDiv()
{
if(document.getElementById('mondiv2').style.visibility == 'visible')
{
montrer('mondiv1');
cacher('mondiv2');
}
else
{
cacher('mondiv1');
montrer('mondiv2');
}
}
function cacher(lobjet)
{
document.getElementById(lobjet).style.visibility = 'hidden';
setCookie(lobjet, 'hidden');
}
/** rend Visible l'objet passé en paramètre */
function montrer(lobjet)
{
document.getElementById(lobjet).style.visibility = 'visible';
setCookie(lobjet, 'visible');
}
--></script>
</head>
<body>
<div id="mondiv1" style="visibility:" getCookie(mondiv1) >mon div 1</div>
<div id="mondiv2" style="visibility:" getCookie(mondiv1) >mon div 2</div>
<input value="changer de div visible" onclick="changeDiv()" type="button">
</body>
</html>
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
1 oct. 2009 à 00:08
1 oct. 2009 à 00:08
<div id="mondiv1" style="visibility:" getCookie(mondiv1) >mon div 1</div>
ta fonction ne sera pas lancee ainsi
il faudrait que tu poses un seul cookie avec pour nom 'div_visble' et comme valeur div1 ou div2
ensuite tu mets <body onLoad="init_div();">
et tu cree une fonction JS init_div() qui va lire le cookie et lancer la fonction montre du div concerné
ta fonction ne sera pas lancee ainsi
il faudrait que tu poses un seul cookie avec pour nom 'div_visble' et comme valeur div1 ou div2
ensuite tu mets <body onLoad="init_div();">
et tu cree une fonction JS init_div() qui va lire le cookie et lancer la fonction montre du div concerné
neeteex
Messages postés
76
Date d'inscription
samedi 9 mai 2009
Statut
Membre
Dernière intervention
20 septembre 2024
1
1 oct. 2009 à 00:40
1 oct. 2009 à 00:40
"tu cree une fonction JS init_div() qui va lire le cookie et lancer la fonction montre du div concerné"
heu, là je bloque un peu : je trouve pas le moyen de faire un simple "echo" en js !
bon je manque de bases en js, je pensais pas que ce serait si compliqué :/
heu, là je bloque un peu : je trouve pas le moyen de faire un simple "echo" en js !
bon je manque de bases en js, je pensais pas que ce serait si compliqué :/
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
1 oct. 2009 à 05:35
1 oct. 2009 à 05:35
un exemple de fonction pour lire un cookie
et pour enn faire un
non en JS ya pas d'echo, tu peut soit placer des alert -->alert(ta_variable_a_tester);
soit ecrire dans un div exemple: dans ta page tu a un div test
<div id="test></div>
dans ton JS document.getElementById("test").innerHTML=ta_varaiable_a_tester;
cete solution est super pratique quand tu est dans des boucles, car contrairement aux alert, ça ne bloque pas le programme
et ensuite tu a document.write
en esperant t'avoir aidé
bonne journée à toi Alain ;-)
function JS init_div(nom) { deb = document.cookie.indexOf(nom + "=") if (deb >= 0) { deb += nom.length + 1 fin = document.cookie.indexOf(";",deb) if (fin < 0) fin = document.cookie.length return unescape(document.cookie.substring(deb,fin)) } //si c'est vide return "" }
et pour enn faire un
function setCook(nom,valeur) { //valeur correspond a la valeur de ta div document.cookie = nom + "=" + escape(valeur) }
non en JS ya pas d'echo, tu peut soit placer des alert -->alert(ta_variable_a_tester);
soit ecrire dans un div exemple: dans ta page tu a un div test
<div id="test></div>
dans ton JS document.getElementById("test").innerHTML=ta_varaiable_a_tester;
cete solution est super pratique quand tu est dans des boucles, car contrairement aux alert, ça ne bloque pas le programme
et ensuite tu a document.write
en esperant t'avoir aidé
bonne journée à toi Alain ;-)
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
1 oct. 2009 à 10:27
1 oct. 2009 à 10:27
Merci B J à toi aussi Michel
neeteex
Messages postés
76
Date d'inscription
samedi 9 mai 2009
Statut
Membre
Dernière intervention
20 septembre 2024
1
1 oct. 2009 à 19:14
1 oct. 2009 à 19:14
Merci mais... Rien à faire, je n'arrive pas à faire un affichage optionnel. Vous connaissez un tutoriel javascript VRAIMENT pas à pas ? Dans le principe ça ressemble au PHP, mais dans la pratique ces histoires de méthodes me perdent complètement.
neeteex
Messages postés
76
Date d'inscription
samedi 9 mai 2009
Statut
Membre
Dernière intervention
20 septembre 2024
1
1 oct. 2009 à 20:49
1 oct. 2009 à 20:49
Super, merci Alain, avec ça je devrais m'en sortir !