IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

refresh et include


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    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

  2. #2
    Membre chevronné Avatar de gofono_bass
    Inscrit en
    Décembre 2005
    Messages
    383
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2005
    Messages : 383
    Par défaut
    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!

  3. #3
    Membre éprouvé Avatar de Oui-Oui MB
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2005
    Messages : 111
    Par défaut
    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

  4. #4
    Membre chevronné Avatar de XtofRoland
    Profil pro
    Inscrit en
    Août 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 357
    Par défaut
    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)

  5. #5
    Membre éprouvé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 98
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  7. #7
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    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

    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.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 98
    Par défaut
    Citation Envoyé par Mr N.
    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

    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+

  9. #9
    Membre éprouvé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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...

  10. #10
    Membre éprouvé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Par défaut
    Citation Envoyé par Mr N.
    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

    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 ?

  11. #11
    Membre émérite Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Par défaut
    Une valeur quelconque que tu peux générer par time() ou rand() ou autre...

  12. #12
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    c'est quoi un jeton ?
    Exemple 1 de la page http://php.net/uniq_id

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 98
    Par défaut
    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+

  14. #14
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Essaie avec l'attribut autocomplete="off" sur ton select. Ce n'est pas full standard mais ca peut peut-etre résoudre tes ennuis

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 98
    Par défaut
    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.

  16. #16
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    C'est un comportement normal, ca permet à l'utilisateur de revenir sur ses pas sans perdre sa selection.

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 98
    Par défaut
    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+

  18. #18
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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>

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 98
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

Discussions similaires

  1. Refresh include php dans un div
    Par devlm dans le forum jQuery
    Réponses: 1
    Dernier message: 21/08/2012, 15h27
  2. Facelet templating + refresh selectif + a4j:include problème
    Par chriscoolletoubibe dans le forum JSF
    Réponses: 6
    Dernier message: 03/04/2010, 00h17
  3. [PHP-JS] refresh avec include?
    Par laurent2 dans le forum Langage
    Réponses: 3
    Dernier message: 04/07/2007, 19h10
  4. include et refresh de page
    Par Prosis dans le forum Langage
    Réponses: 4
    Dernier message: 22/01/2007, 15h39
  5. Sortir d'un progamme qui boucle ou qui refresh
    Par mikevador02 dans le forum C
    Réponses: 12
    Dernier message: 14/12/2002, 09h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo