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

Autres composants PHP Discussion :

[Zend_Session] Modifier la variable session


Sujet :

Autres composants PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de yosraisi
    Inscrit en
    Février 2008
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 136
    Par défaut [Zend_Session] Modifier la variable session
    bonjour ,

    j'ai créer une variable session à fin d'enregistrer mon panier pour la manipuler(affichage , modification , et suppression)
    nb que j'utilise le concept de panier à fin d'ajouter des articles puis pour les enregistrer dans mon appl
    le problème c'est lorsque je modifie mon panier comme la suppression le panier ne subit aucune modification est ce que l'enregistrement de ma variable session s'effectue automatiquement ou je dois la modifier aprés la suppression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function supprimerdepanierAction()
    {
    	  $article=$_GET['id'];
      	  $listearticles=new Consultation();
    	  $cart = new Zend_Session_Namespace('cart'); 
     
    	  $listearticles->supprimerArticle(&$article);
    	 $this->view->data=$listearticles->showCart();
    	$this->_redirect('/consultation/ecranajoutercateg');
    }
    et la fonction supression
    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
    function supprimerArticle($libelleProduit){
    if ($this->creerlistearticle())
    {
    $cart = new Zend_Session_Namespace('cart');
      $tmp=array();
      $tmp['aricle'] = array();
      $tmp['qte'] = array();      
      $tmp['description'] = array();
     
      for($i = 0; $i <count($cart->article); $i++) 
      { 
       if ($cart->aricle[$i]!== $libelleProduit)
       {
     
        array_push($tmp['aricle'],$cart->aricle[$i]);
     
        array_push($tmp['qte'],$cart->qte[$i]); 
        array_push($tmp['description'],$cart->description[$i]);
       }
     
      }
     
     $cart=$tmp;
     unset($tmp); 
     
     
    }
    else
      echo "Un problème est survenu veuillez contacter l'administrateur du site.";
    }
    est ce que après je dois mettre à jour la variable session ??si oui comment???
    merci de m'aider

  2. #2
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Bonjour,

    Quand tu fais tu remplace le contenu de ta variable cart (l'espace de nommage de ta session) par le contenu de $tmp. En faisant ça, tu perd ton espace de nommage. Si tu veux le mettre à jour à partir de $tmp, il faudrait plutôt faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $cart->article = $tmp['article'];
    $cart->qte = $tmp['qte'];
    etc...
    D'autre part, personnellement, pour simplifier ton code, plutôt que de conserver ce qui ne correspond pas à ton article, j'aurais supprimé ce qui y correspondait (en plus, ça évite ce passage par une variable temporaire !)... Mais c'est une autre question

  3. #3
    Membre confirmé Avatar de yosraisi
    Inscrit en
    Février 2008
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 136
    Par défaut
    bonjour ,

    merci pour le code

    mais ça n a pas bien marché car il me supprime le nom et la description et non tout l'enregistrement. je te pose une question car je vois que j'utilise mon panier d'une maniére fausse

    voila comment je décare mon panier et la stocké dans la session
    c'est la fonction de création

    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
    public function creerlistearticle()
    {
    	 $cart = new Zend_Session_Namespace('cart');
    	 $ispanier=false;
    	 if (isset($cart->article) ) {
          $ispanier=true;
    	  }
    	  else
    	  {
     
    	   $panier=array();
    	   $panier['article']=array();
    	   $panier['description']=array();
    	   $panier['qte']=array();
     
    	   $cart->article=$panier['article'];
    	   $cart->description=$panier['description'];
    	   $cart->qte=$panier['qte'];
    	   $regis=new Zend_Registry();
    	   $regis->set('cart',$cart );
    	    $ispanier=true;
    	  }
    	  return $ispanier;
    }
    est ce que e dois déclareer ma variable session comme un tableau qui a 3 tableau article , description, qte c à d
    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
    public function creerlistearticle()
    {
    	 $cart = new Zend_Session_Namespace('cart');
    	 $cart->array=array();
    	 $ispanier=false;
    	 if (isset($cart->article) ) {
          $ispanier=true;
    	  }
    	  else
    	  {
     
    	   $panier=array();
    	   $panier['article']=array();
    	   $panier['description']=array();
    	   $panier['qte']=array();
     
    	   $cart->array['article']=$panier['article'];
    	   $cart->array['description']=$panier['description'];
    	   $cart->array['qte']=$panier['qte'];
    	   $regis=new Zend_Registry();
    	   $regis->set('cart',$cart );
    	    $ispanier=true;
    	  }
    	  return $ispanier;
    }
    ceci est l'utilisation d'un espace de nomage comme étant un tableau car si je dois supprimer un article je dois supprimer tout l'enregistrement et cet enregistrement se situe dans le tableau qui englobe tout c'est $cart->array j'ai passer beaucoup de temps de manipuler cette partie sans aucun résultat
    merci pour l'aide

  4. #4
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Rebonjour

    Je ne comprend pas bien ce que tu dis qui n'a pas marché... :/

    Pour ton panier, plutôt que le gérer sous la forme d'un tableau associatif de trois tableaux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    array(
      'article' => array(),
      'description' => array(),
      'qte' => array()
    )
    pourquoi ne pas le gérer sous forme d'un tableau associatif de tous tes articles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    array(
      id_article (ou nom_article) => array('qte' => quantité, 'description' => description),
      ...
    )
    Ta fonction de création du panier serait simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public function creerlistearticle()
    {
        $cart = new Zend_Session_Namespace('cart');
        if (!isset($cart->panier) )
        {
            $cart->panier=array();
            $regis=new Zend_Registry();
            $regis->set('cart',$cart );
        }
        return true;
    }
    Pour supprimer un article, ça reviendrait simpelment à faire un unset($cart->panier[$nom_article]).

  5. #5
    Membre confirmé Avatar de yosraisi
    Inscrit en
    Février 2008
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 136
    Par défaut
    Bonjour,

    merci pour l'explication c'est plus simple , je dois l'essayer
    hier j'ai pas trouver la solution donc j'ai décider de travailler tout simplement avec $_session et non avec zend_session car j'ai passer bcp de temps à tester sans rien avoir et j'ai pas de temps mais comme meme je dois faire ce que tu m'as dis

    merci bien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] modifier une variable session php
    Par rom117 dans le forum AJAX
    Réponses: 10
    Dernier message: 14/07/2009, 10h26
  2. [Cookies] Modifier une variable session
    Par Galip dans le forum Langage
    Réponses: 1
    Dernier message: 19/06/2007, 00h13
  3. [JSP] [Javascript] Modifier une variable de Session
    Par fady005 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 05/04/2007, 11h48
  4. variable modifié par une session
    Par Mr Meuble dans le forum Langage
    Réponses: 3
    Dernier message: 08/08/2006, 14h15
  5. Réponses: 9
    Dernier message: 03/07/2006, 18h32

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