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

JavaScript Discussion :

Javascript Session et Internet Explorer


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 21
    Points
    21
    Par défaut Javascript Session et Internet Explorer
    Bon voilà j'ai déjà posé la question dans le forum PHP, on m'a conseillé de voir avec les spécialiste JS, alors je vous copie le message :

    Bonjour,

    Voilà j'ai un ptit soucis (euphémisme), je vous explose le problème. Je suis en train de développer une boutique en ligne et dans l'espace d'admin je suis en train de créer une page dédiée à la saisie d'une commande par un employé dla boite.

    Cette page comprends un formulaire avec plusieurs informations et une partie dédiée au panier. Sur l'espace dédié au panier on trouve un lien "Ajouter des produits au panier" qui ouvre un pop-up où l'employé va pouvoir aller chercher le produit à ajouter au panier.

    C'est là que ca cloche en effet lors de l'ajout dans le panier je remplis ma session (panier) avec les infos de ce produit et je reload la page parente par la fonction Javascript suivante [cpp]window.parent.opener.location.reload(); [/cpp]
    afin que l'affichage du panier soit cohérent.

    Tout fonctionne parfaitement sous FF ou encore Opéra mon panier est bien mis à jour, mais sous IE c'est la merdasse ca me le met pas a jour, la fonction JS a bien l'air de s'exécuter mais je pense que le problème se situe au niveau des sessions.

    Voilà le code après le click "ajouter un produit dans le panier"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	$panier->ajout_panier($_GET['uvc'], '1', 'L', '7.90');
    	echo "<script language='JavaScript' type='text/javascript'> window.parent.opener.location.reload(); </script>";

    et l'affichage du contenu du panier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    if (!isset($_SESSION['panier']))
    	echo '<bold>Aucun produit dans le panier</bold>';
    else
    {
        for($i=0;$i<=count($_SESSION['panier']['id_article'])-1;$i++)
        {
    	echo $_SESSION['panier']['id_article'][$i];
     
        }
     
    }
    ma classe panier :
    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
     
    <?php
     
    class panier
    {
     
            function __construct()
            {
            
                    if(!isset($_SESSION['panier']))
                    {
                            /* Initialisation du panier */
                            $_SESSION['panier'] = array();
                            /* Subdivision du panier */
                            $_SESSION['panier']['id_article'] = array();
                            $_SESSION['panier']['qte'] = array();
                            $_SESSION['panier']['taille'] = array();
                            $_SESSION['panier']['prix'] = array(); 
                    }
     
            }
            
            function ajout_panier($uvc, $qte, $taille, $prix)
            {
                    array_push($_SESSION['panier']['id_article'],$uvc);
                    array_push($_SESSION['panier']['qte'],$qte);
                    array_push($_SESSION['panier']['taille'],$taille);
                    array_push($_SESSION['panier']['prix'],$prix); 
            }
            
            
    }
            
     
    ?>
    J'ai fais des recherches, j'ai vu que ca pouvait éventuellement venir d'une erreur de cache au niveau d'IE mais g tout vidé et ca marche pas plus.
    J'ai fait quelques tests au niveaux des sessions et lorsque je fais un affichage d'une valeur contenue dans la session panier lorsque je suis dans le popup pas de soucis mais dès lors que je me trouve dans la page parente impossible avec IE !
    Donc voilà je fais appel à vous !

    Merci d'avance de prendre le temps de lire le message et de me répondre

  2. #2
    Membre régulier Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Points : 93
    Points
    93
    Par défaut
    Arf, j'ai deja ete confronter a cet type de probleme. J'ouvrais une pop-up concernant les fichers d'un client (pour uploader des fichiers) et je pouvais revenir a la page parente sans probleme avec FF.
    Par contre avec IE, des que j'ouvrais la pop-up, la page parente se trouvait deja hors session. Si ca se trouve, c'est pareil pour toi.
    Malheureusement je n'ai pas trouver le probleme, et j'ai recommence a zero l'ouverture de ma pop-up. Donc je ne sais pas si le probleme vient au moment ou tu quitte la pop-up ou si c'est dés l'origine
    Je peux te filer ce que j'ai fais, si ca peux t'aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script language="JavaScript">
    function ouvreFenetre(url, largeur, hauteur) {
      window.open('url', "", "scrollbars=no,menubar=no,toolbar=no,resizable=no,width="
                  + largeur + ",height=" + hauteur);
    }
    </script>
    <a href = "javascript:ouvreFenetre(url, 600, 400)">view</a>
    Tu peux peut-etre faire un test avec celle-la

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 21
    Points
    21
    Par défaut
    avec cette ouverture de popup cela fonctionne pour toi ?

  4. #4
    Membre régulier Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Points : 93
    Points
    93
    Par défaut
    Ouais, ma page parente garde la session ouverte. Pas chez toi ?

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 21
    Points
    21
    Par défaut
    j'ai pas encore testé je suis sur un autre truc
    Je te dis ca dès que c'est fait mais ca me parait chelou si ca marche car mon popup je l'ouvre via la même méthode (window.open()) si ce n'est que je n'est pas mis ca en fonction.

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 21
    Points
    21
    Par défaut
    et bien ca ne fonctionne pas, mon panier reste desespérement vide sous IE ...

  7. #7
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Sous IE, une seule session peut être ouverte par Frame (Contenu d'une page web, pouvant contenir des sous-frames (frameset, iframe, ...). Attention que sous IE7, une fenêtre peut contenir plusieurs Frames (Tabs) qui restent néamoins indépendantes les unes des autres...

    Je crois qu'une solution serait d'enregistrer l'objet window obtenu par ouverture d'un page blanche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.panier = window.open("","","params=value")
    et d'utiliser window.panier pour construire de manière dynamique la page (coté client)... L'utilisation d'AJAX permetterait la communication avec le serveur. L'utilisation de cookies permetterait la transmition de données simplement entre Frames et même entre Frames et Serveur.

Discussions similaires

  1. Utilisation de session avec Internet Explorer
    Par mickpiet dans le forum Langage
    Réponses: 5
    Dernier message: 03/07/2009, 22h31
  2. Réponses: 2
    Dernier message: 07/08/2007, 04h37
  3. Réponses: 3
    Dernier message: 19/10/2006, 12h45
  4. Javascript, CSS et Internet Explorer
    Par Bestiol dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 30/07/2006, 16h47

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