Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/03/2006, 14h24   #1
Membre éprouvé
 
Homme Cyrill Gremaud
Ingénieur systèmes et réseaux
Inscription : août 2005
Messages : 1 002
Détails du profil
Informations personnelles :
Nom : Homme Cyrill Gremaud
Âge : 23
Localisation : Suisse

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Enseignement

Informations forums :
Inscription : août 2005
Messages : 1 002
Points : 429
Points : 429
Par défaut refresh et include

salut tout le monde

voila jai une page index.php et au centre de cette page je fais des include d'autre page... donc sa me fais des page du style index.php?page=forum, index.php?page=photo etc... mais le problème c'est que lorsque je click sur un lien, il me refresh toute la page... est ce possible qu'il ne refresh que l'include ???

merci
cyrill.gremaud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2006, 14h28   #2
Membre éprouvé
 
Avatar de gofono_bass
 
Inscription : décembre 2005
Messages : 385
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : décembre 2005
Messages : 385
Points : 409
Points : 409
euh... peut-etre avec un truc en AJAX, mais bon, faut qsuelqu'un qui s'y connait un peu plus que moi pour t'expliquer comment on fait!
__________________
mais pourquoi tu cours?
gofono_bass est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2006, 14h44   #3
Membre habitué
 
Avatar de Oui-Oui MB
 
Inscription : avril 2005
Messages : 111
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : avril 2005
Messages : 111
Points : 108
Points : 108
En gros, tu mets tout ton include à l'intérieur d'un bloc DIV (ou autre) et pour chaque lien, tu fais appel à une fonction Javascript qui enverra une requete XmlHttpRequest, pompera le contenu de la page et viendra changer l'intérieur du DIV.

Il existe pas mal d'exemple sur le wev pour ça mais bon l'ennui c'est que tu dois changer tous tes liens dans la page incluse.

Un truc un peu améliorer scannerais toute la page à son chargement et s'occuperait de remplacer les liens par un appel javascript mais bon... c'est du chipotage !


Sinon, tu utilises un iframe
__________________
Que la Schtuche soit avec vous !!!
Oui-Oui MB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2006, 14h46   #4
Membre éclairé
 
Avatar de XtofRoland
 
Inscription : août 2005
Messages : 361
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 361
Points : 340
Points : 340
si le debut et la fin de ta page tu peux utiliser les auto_prepend_file.
les serveur gardera le fichier en memoire (si c'est dans le .ini, pas via htaccess)
__________________
Le but de tout developpeur OO est de devenir une référence.
Mon avatar est un ambigramme, les curieux peuvent le retourner ;-)
Aider <> Faire a la place de!!!
XtofRoland est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2006, 14h46   #5
Membre éprouvé
 
Homme Cyrill Gremaud
Ingénieur systèmes et réseaux
Inscription : août 2005
Messages : 1 002
Détails du profil
Informations personnelles :
Nom : Homme Cyrill Gremaud
Âge : 23
Localisation : Suisse

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Enseignement

Informations forums :
Inscription : août 2005
Messages : 1 002
Points : 429
Points : 429
en fait j'ai pensé faire un truc du genre comme ca:

j'ai en php un select en fonction de la page qu'on veut, qui ressemble à ça:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
		if(isset($_GET["PageLoad"])){
 
	  		switch($_GET["PageLoad"]){
 
				case "Login":
					require("page/login.php");
					break;
 
				case "Registration":
					require("page/registration.php");
					break;
 
				case "MyBrainPage":
					require("page/myBrain.php");
					break;
 
				case "Forum":
					require("forum/sujets.php");
					break;
 
				case "Admin":
					require("page/adminCtrl.php");
					break;
 
				case "Game":
					require("page/jeu_memoire1.php");
					break;
 
				case "Vote":
					require("page/vote.php");
					break;
 
				case "Search":
					require("page/search.php");
					break;
 
				case "MailSender":
					require("page/mailSender.php");
					break;
 
				default:
					require("page/home.php");
					break;
			}//end of switch
 
		}//end of if(isset())
et je pensais faire une fonction en javascript qui changerait le contenu d'un div que je placerais à la place de mes require("page/<blablabla<");

la transformation ressemblerait à ça:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 
<script language="javascript">
function changeaPage(pageName){
document.getElementById("pages").innerHTML="<?php require"+pageName+" ?>;";
}
</script>
 
<div id="pages"></div>
<?		
		if(isset($_GET["PageLoad"])){
switch($_GET["PageLoad"]){
 
				case "Login":
				?>
				<script language=”javascript”>changePage("page/login.php");</script>
				<?php
					break;
 
				case "Registration":
				?>
				<script language=”javascript”>changePage("page/registration.php");</script>
				<?php
					break;
 
				case "MyBrainPage":
				?>
				<script language=”javascript”>changePage("page/myBrain.php");</script>
				<?php
					break;
 
				case "Forum":
				?>
				<script language=”javascript”>changePage("page/sujets.php");</script>
				<?php
					break;
 
				case "Admin":
				?>
				<script language=”javascript”>changePage("page/adminCtrl.php");</script>
				<?php
					break;
 
				case "Game":
				?>
				<script language=”javascript”>changePage("page/jeu_memoire1.php");</script>
				<?php
					break;
 
				case "Vote":
				?>
				<script language=”javascript”>changePage("page/vote.php");</script>
				<?php
					break;
 
				case "Search":
				?>
				<script language=”javascript”>changePage("page/search.php");</script>
				<?php
					break;
 
				default:
				?>
				<script language=”javascript”>changePage("page/home.php");</script>
				<?php
					break;
			}//end of switch
 
 
		}//end of if(isset())
	  ?>

mais ca marche pas
ce serait dans ce sens quand même ?
cyrill.gremaud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2006, 17h30   #6
Membre du Club
 
Inscription : juin 2003
Messages : 83
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 83
Points : 47
Points : 47
Citation:
Envoyé par cyrill
en fait j'ai pensé faire un truc du genre comme ca:

j'ai en php un select en fonction de la page qu'on veut, qui ressemble à ça:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
		if(isset($_GET["PageLoad"])){
 
	  		switch($_GET["PageLoad"]){
 
				case "Login":
					require("page/login.php");
					break;
 
				case "Registration":
					require("page/registration.php");
					break;
 
				case "MyBrainPage":
					require("page/myBrain.php");
					break;
 
				case "Forum":
					require("forum/sujets.php");
					break;
 
				case "Admin":
					require("page/adminCtrl.php");
					break;
 
				case "Game":
					require("page/jeu_memoire1.php");
					break;
 
				case "Vote":
					require("page/vote.php");
					break;
 
				case "Search":
					require("page/search.php");
					break;
 
				case "MailSender":
					require("page/mailSender.php");
					break;
 
				default:
					require("page/home.php");
					break;
			}//end of switch
 
		}//end of if(isset())
et je pensais faire une fonction en javascript qui changerait le contenu d'un div que je placerais à la place de mes require("page/<blablabla<");

la transformation ressemblerait à ça:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 
<script language="javascript">
function changeaPage(pageName){
document.getElementById("pages").innerHTML="<?php require"+pageName+" ?>;";
}
</script>
 
<div id="pages"></div>
<?		
		if(isset($_GET["PageLoad"])){
switch($_GET["PageLoad"]){
 
				case "Login":
				?>
				<script language=”javascript”>changePage("page/login.php");</script>
				<?php
					break;
 
				case "Registration":
				?>
				<script language=”javascript”>changePage("page/registration.php");</script>
				<?php
					break;
 
				case "MyBrainPage":
				?>
				<script language=”javascript”>changePage("page/myBrain.php");</script>
				<?php
					break;
 
				case "Forum":
				?>
				<script language=”javascript”>changePage("page/sujets.php");</script>
				<?php
					break;
 
				case "Admin":
				?>
				<script language=”javascript”>changePage("page/adminCtrl.php");</script>
				<?php
					break;
 
				case "Game":
				?>
				<script language=”javascript”>changePage("page/jeu_memoire1.php");</script>
				<?php
					break;
 
				case "Vote":
				?>
				<script language=”javascript”>changePage("page/vote.php");</script>
				<?php
					break;
 
				case "Search":
				?>
				<script language=”javascript”>changePage("page/search.php");</script>
				<?php
					break;
 
				default:
				?>
				<script language=”javascript”>changePage("page/home.php");</script>
				<?php
					break;
			}//end of switch
 
 
		}//end of if(isset())
	  ?>

mais ca marche pas
ce serait dans ce sens quand même ?
Salut,

j'ai la même archi que toi et je ne vois pas où est le souci dans le fait de recharger la page en entier.
Les images et autres scripts sont en cache dans le navigateur et l'affichage est instantanée. T'es sûr que tu te prends pas la tête pour pas grand chose ?

Par contre j'ai un autre souci : La gestion des refresh (via touche F5, back ...)

Le membre poste un formulaire qui envoie un mail, fait un INSERT en base... s'il fait refresh, tout est reposté.
Sur un Insert, vu que j'ai bien blindé ma base, il a une erreur de duplication de clé mais ça reste moche.
Sur un envoi de mail, il peut flooder facilement.
J'ai mis une bidouille en place : je mémorise le timestamp de l'envoi et je le jette s'il en refait un dans les 20 secondes. C'est déjà ça mais n'y a-t-il pas un meilleur moyen ? (à part la gestion via N pages : 1 pour le formulaire, 1 pour le traitement, et 1 pour le retour.

Merci
kileak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2006, 18h39   #7
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Citation:
je ne vois pas où est le souci dans le fait de recharger la page en entier.
[...]. T'es sûr que tu te prends pas la tête pour pas grand chose ?
+1

Citation:
Par contre j'ai un autre souci : La gestion des refresh (via touche F5, back ...)

Le membre poste un formulaire qui envoie un mail, fait un INSERT en base... s'il fait refresh, tout est reposté.
Sur un Insert, vu que j'ai bien blindé ma base, il a une erreur de duplication de clé mais ça reste moche.
Sur un envoi de mail, il peut flooder facilement.
J'ai mis une bidouille en place : je mémorise le timestamp de l'envoi et je le jette s'il en refait un dans les 20 secondes. C'est déjà ça mais n'y a-t-il pas un meilleur moyen ? (à part la gestion via N pages : 1 pour le formulaire, 1 pour le traitement, et 1 pour le retour.
Il y a une autre solution : l'utilisation de jeton.
Lorsque tu génères un formulaire, tu crées un jeton.
Ce jeton tu le place en session et dans le formulaire en hidden
Quand tu recois le formulaire, tu compares son jeton avec celui en session
Si c'est les mêmes tu valides et tu supprimes le jeton.
Si le gars rafraichit la page et qu'il ressoumet le meme jeton ca marchera pas.
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2006, 18h52   #8
Membre du Club
 
Inscription : juin 2003
Messages : 83
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 83
Points : 47
Points : 47
Citation:
Envoyé par Mr N.
Citation:
je ne vois pas où est le souci dans le fait de recharger la page en entier.
[...]. T'es sûr que tu te prends pas la tête pour pas grand chose ?
+1

Citation:
Par contre j'ai un autre souci : La gestion des refresh (via touche F5, back ...)

Le membre poste un formulaire qui envoie un mail, fait un INSERT en base... s'il fait refresh, tout est reposté.
Sur un Insert, vu que j'ai bien blindé ma base, il a une erreur de duplication de clé mais ça reste moche.
Sur un envoi de mail, il peut flooder facilement.
J'ai mis une bidouille en place : je mémorise le timestamp de l'envoi et je le jette s'il en refait un dans les 20 secondes. C'est déjà ça mais n'y a-t-il pas un meilleur moyen ? (à part la gestion via N pages : 1 pour le formulaire, 1 pour le traitement, et 1 pour le retour.
Il y a une autre solution : l'utilisation de jeton.
Lorsque tu génères un formulaire, tu crées un jeton.
Ce jeton tu le place en session et dans le formulaire en hidden
Quand tu recois le formulaire, tu compares son jeton avec celui en session
Si c'est les mêmes tu valides et tu supprimes le jeton.
Si le gars rafraichit la page et qu'il ressoumet le meme jeton ca marchera pas.
WOUAH !
Excellente idée !!! et facile à mettre en place.

merci !

Je vais proposer ça à mon compère

a+
kileak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2006, 10h50   #9
Membre éprouvé
 
Homme Cyrill Gremaud
Ingénieur systèmes et réseaux
Inscription : août 2005
Messages : 1 002
Détails du profil
Informations personnelles :
Nom : Homme Cyrill Gremaud
Âge : 23
Localisation : Suisse

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Enseignement

Informations forums :
Inscription : août 2005
Messages : 1 002
Points : 429
Points : 429
Citation:
Envoyé par kileak
Citation:
Envoyé par cyrill
en fait j'ai pensé faire un truc du genre comme ca:

j'ai en php un select en fonction de la page qu'on veut, qui ressemble à ça:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
		if(isset($_GET["PageLoad"])){
 
	  		switch($_GET["PageLoad"]){
 
				case "Login":
					require("page/login.php");
					break;
 
				case "Registration":
					require("page/registration.php");
					break;
 
				case "MyBrainPage":
					require("page/myBrain.php");
					break;
 
				case "Forum":
					require("forum/sujets.php");
					break;
 
				case "Admin":
					require("page/adminCtrl.php");
					break;
 
				case "Game":
					require("page/jeu_memoire1.php");
					break;
 
				case "Vote":
					require("page/vote.php");
					break;
 
				case "Search":
					require("page/search.php");
					break;
 
				case "MailSender":
					require("page/mailSender.php");
					break;
 
				default:
					require("page/home.php");
					break;
			}//end of switch
 
		}//end of if(isset())
et je pensais faire une fonction en javascript qui changerait le contenu d'un div que je placerais à la place de mes require("page/<blablabla<");

la transformation ressemblerait à ça:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 
<script language="javascript">
function changeaPage(pageName){
document.getElementById("pages").innerHTML="<?php require"+pageName+" ?>;";
}
</script>
 
<div id="pages"></div>
<?		
		if(isset($_GET["PageLoad"])){
switch($_GET["PageLoad"]){
 
				case "Login":
				?>
				<script language=”javascript”>changePage("page/login.php");</script>
				<?php
					break;
 
				case "Registration":
				?>
				<script language=”javascript”>changePage("page/registration.php");</script>
				<?php
					break;
 
				case "MyBrainPage":
				?>
				<script language=”javascript”>changePage("page/myBrain.php");</script>
				<?php
					break;
 
				case "Forum":
				?>
				<script language=”javascript”>changePage("page/sujets.php");</script>
				<?php
					break;
 
				case "Admin":
				?>
				<script language=”javascript”>changePage("page/adminCtrl.php");</script>
				<?php
					break;
 
				case "Game":
				?>
				<script language=”javascript”>changePage("page/jeu_memoire1.php");</script>
				<?php
					break;
 
				case "Vote":
				?>
				<script language=”javascript”>changePage("page/vote.php");</script>
				<?php
					break;
 
				case "Search":
				?>
				<script language=”javascript”>changePage("page/search.php");</script>
				<?php
					break;
 
				default:
				?>
				<script language=”javascript”>changePage("page/home.php");</script>
				<?php
					break;
			}//end of switch
 
 
		}//end of if(isset())
	  ?>

mais ca marche pas
ce serait dans ce sens quand même ?
Salut,

j'ai la même archi que toi et je ne vois pas où est le souci dans le fait de recharger la page en entier.
Les images et autres scripts sont en cache dans le navigateur et l'affichage est instantanée. T'es sûr que tu te prends pas la tête pour pas grand chose ?

Par contre j'ai un autre souci : La gestion des refresh (via touche F5, back ...)

Le membre poste un formulaire qui envoie un mail, fait un INSERT en base... s'il fait refresh, tout est reposté.
Sur un Insert, vu que j'ai bien blindé ma base, il a une erreur de duplication de clé mais ça reste moche.
Sur un envoi de mail, il peut flooder facilement.
J'ai mis une bidouille en place : je mémorise le timestamp de l'envoi et je le jette s'il en refait un dans les 20 secondes. C'est déjà ça mais n'y a-t-il pas un meilleur moyen ? (à part la gestion via N pages : 1 pour le formulaire, 1 pour le traitement, et 1 pour le retour.

Merci
non je ne me prend pas la tete parce que j'ai un lecteur mp3 intégré a mon site et si mon site refresh toute la page la chanson recommence chaque fois...
cyrill.gremaud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2006, 10h52   #10
Membre éprouvé
 
Homme Cyrill Gremaud
Ingénieur systèmes et réseaux
Inscription : août 2005
Messages : 1 002
Détails du profil
Informations personnelles :
Nom : Homme Cyrill Gremaud
Âge : 23
Localisation : Suisse

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Enseignement

Informations forums :
Inscription : août 2005
Messages : 1 002
Points : 429
Points : 429
Citation:
Envoyé par Mr N.
Citation:
je ne vois pas où est le souci dans le fait de recharger la page en entier.
[...]. T'es sûr que tu te prends pas la tête pour pas grand chose ?
+1

Citation:
Par contre j'ai un autre souci : La gestion des refresh (via touche F5, back ...)

Le membre poste un formulaire qui envoie un mail, fait un INSERT en base... s'il fait refresh, tout est reposté.
Sur un Insert, vu que j'ai bien blindé ma base, il a une erreur de duplication de clé mais ça reste moche.
Sur un envoi de mail, il peut flooder facilement.
J'ai mis une bidouille en place : je mémorise le timestamp de l'envoi et je le jette s'il en refait un dans les 20 secondes. C'est déjà ça mais n'y a-t-il pas un meilleur moyen ? (à part la gestion via N pages : 1 pour le formulaire, 1 pour le traitement, et 1 pour le retour.
Il y a une autre solution : l'utilisation de jeton.
Lorsque tu génères un formulaire, tu crées un jeton.
Ce jeton tu le place en session et dans le formulaire en hidden
Quand tu recois le formulaire, tu compares son jeton avec celui en session
Si c'est les mêmes tu valides et tu supprimes le jeton.
Si le gars rafraichit la page et qu'il ressoumet le meme jeton ca marchera pas.
c'est quoi un jeton ?
cyrill.gremaud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2006, 11h10   #11
Membre émérite
 
Avatar de macbook
 
Inscription : février 2006
Messages : 840
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 840
Points : 924
Points : 924
Une valeur quelconque que tu peux générer par time() ou rand() ou autre...
__________________
Consultant idéaliste.
macbook est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2006, 11h11   #12
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Citation:
c'est quoi un jeton ?
Exemple 1 de la page http://php.net/uniq_id
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2006, 11h22   #13
Membre du Club
 
Inscription : juin 2003
Messages : 83
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 83
Points : 47
Points : 47
Ok, j'ai rien dit cyrill, ton usage est très spécifque


Toujours pas la gestion des refresh.

J'ai pas mal de combo qui servent à naviguer d'une journée à l'autre (gestion championnat de foot).
Je faisais un submit sur le ONCHANGE. Le formulaire étant en POST, si je faisais back pour revenir 5 journées en arrière, IE ou FFX me demande si je veux re-soumettre. La réponse est oui mais que c'est pénible.
Dc je fais un form en GET que pour la combo des journées.
Super ! plus de question de refresh, ça marche au poil....enfin pas tout à fait et c'est là que ma question arrive.

ex : Je vais de la j1 à la j5 ...j7 j9.

Je fais back. Je reviens à la J7 mais là problème. La combobox affiche encore la J9 !!!
Re-back : J'arrive en J5 mais la combo affiche J7 !

Il y a un décalage !
Je regarde le source de ma page. La bonne <option> est selected mais le browser n'en tient pas compte !
Je me suis dit que c'était un bug FFX 1.5 mais avec IE6 c'est pareil.

Les bras m'en tombent. Je n'ai pas l'ombre d'une idée pour résoudre ce problème vraiment bizarre.

Merci pour votre aide.

a+
kileak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2006, 16h15   #14
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Essaie avec l'attribut autocomplete="off" sur ton select. Ce n'est pas full standard mais ca peut peut-etre résoudre tes ennuis
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2006, 18h45   #15
Membre du Club
 
Inscription : juin 2003
Messages : 83
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 83
Points : 47
Points : 47
Citation:
Envoyé par Mr N.
Essaie avec l'attribut autocomplete="off" sur ton select. Ce n'est pas full standard mais ca peut peut-etre résoudre tes ennuis
Et non, malheureusement ça ne marche pas :-/

C'est dingue ce pétage de plomb. Et depuis le temps que je code des pages web, je ne m'en étais jamais rendu compte.
kileak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2006, 19h09   #16
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
C'est un comportement normal, ca permet à l'utilisateur de revenir sur ses pas sans perdre sa selection.
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2006, 11h52   #17
Membre du Club
 
Inscription : juin 2003
Messages : 83
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 83
Points : 47
Points : 47
Citation:
Envoyé par Mr N.
C'est un comportement normal, ca permet à l'utilisateur de revenir sur ses pas sans perdre sa selection.
Pardon ? Justement il l'a perd, il y a incohérence
Tu fais back.
99.99% de ta page affiche les bonnes données, le code source te dit que c'est la bonne option qui est SELECTED mais la navigateur (IE ou FFX) affiche une sélection différente malgré tout !
Moi j'appelle ça un pétage de plomb

J'ajoute même que c'est pire qu'un simple décalage. J'ai fait une série de 10 changements suivis de 10 back.
Au final, il arrive parfois que l'affichage de la list box soit cohérente après qq backs.
Mais dans tous les cas, ce n'est jamais du 100%.


Ce qui m'étonne, c'est que je ne trouve rien sur le web qui explique comment traiter proprement les Refresh et les Back-Next.

a+
kileak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2006, 12h57   #18
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Citation:
Envoyé par kileak
Citation:
Envoyé par Mr N.
C'est un comportement normal, ca permet à l'utilisateur de revenir sur ses pas sans perdre sa selection.
Pardon ? Justement il l'a perd, il y a incohérence
Tu fais back.
99.99% de ta page affiche les bonnes données, le code source te dit que c'est la bonne option qui est SELECTED mais la navigateur (IE ou FFX) affiche une sélection différente malgré tout !
Moi j'appelle ça un pétage de plomb
Non. Imagine un formulaire d'inscription ou on te demande de choisir une option parmis ['Mr', 'Mme', 'Mlle'], sachant que l'option par défaut étant Mr
Tu choisis 'Mlle' puis tu soumets le formulaire. Malheureusement il y a des erreurs dans ton formulaire ou tu veux vérifier quelque chose... bref tu fais [back] dans ton navigateur. Le comportement attendu et de se retrouver avec ta sélection (tu es toujours 'Mlle') et non pas avec la selection par défaut.
Donc ton cas es quelque peu spécifique.

Allez je suis bon prince, un petit cadeau :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<form action="" method="GET">
<select name="toto" id="toto" onchange="this.form.submit()">
    <option selected="selected">1
    <option>2
    <option>3
</select>
</form>
<script>
    sel = document.getElementById('toto');
    len = sel.options.length;
    for(var i = 0 ; i < len ; i++) {
        sel.options[i].selected = sel.options[i].defaultSelected;
    }
</script>
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2006, 14h16   #19
Membre du Club
 
Inscription : juin 2003
Messages : 83
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 83
Points : 47
Points : 47
Citation:
Envoyé par Mr N.
Non. Imagine un formulaire d'inscription ou on te demande de choisir une option parmis ['Mr', 'Mme', 'Mlle'], sachant que l'option par défaut étant Mr
Tu choisis 'Mlle' puis tu soumets le formulaire. Malheureusement il y a des erreurs dans ton formulaire ou tu veux vérifier quelque chose... bref tu fais [back] dans ton navigateur. Le comportement attendu et de se retrouver avec ta sélection (tu es toujours 'Mlle') et non pas avec la selection par défaut.
Donc ton cas es quelque peu spécifique.

Allez je suis bon prince, un petit cadeau :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<form action="" method="GET">
<select name="toto" id="toto" onchange="this.form.submit()">
    <option selected="selected">1
    <option>2
    <option>3
</select>
</form>
<script>
    sel = document.getElementById('toto');
    len = sel.options.length;
    for(var i = 0 ; i < len ; i++) {
        sel.options[i].selected = sel.options[i].defaultSelected;
    }
</script>
héhé ! là effectivement

Par contre, mon cas n'est pas spécialement farfelu et je m'étonne que rien ne soit prévu pour facilement y remédier.
J'ai essayé un code similaire au tien pour remedier à mon prob. En le mettant dans le body onload ça ne marchait pas.

J'essaye le tien (pas dans le onload) et je te tiens au courant.

En tout cas, merci bon Prince

EDIT : rien à faire
Les 2-3 1ers backs sont décalés, puis ca se rajuste et c'est OK ?
En refaisant "suivant", les mêmes décalages apparaissent.
Bref, c'est la misère
kileak est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h28.


 
 
 
 
Partenaires

Hébergement Web