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

Zend Framework PHP Discussion :

j'ai une variable qui se réinitialise à 0


Sujet :

Zend Framework PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Par défaut j'ai une variable qui se réinitialise à 0
    Bonjour,

    je crée un formulaire dynamiquement dans une vue qui s'appelle XML à partir d'une boucle for et aussi d'une valeur $this-> standard (qui est une valeur que je récupère d'un contrôlleur), puis dans la même page j'essaye de stocker les données dans un fichier XML, mais malheureusement le fichier est vide, je trouve pas les données que j'ai saisie dans le formulaire, parceque tout simplement quand je valide le formulaire la page se rafraichie et donc je perd la valeur de $this->standard (qui est une valeur que je récupère d'un contrôlleur) et se réinitialise avec 0.... sinon comment maintenir la valeur de cette variable malgré le rafraichissement de la page :

    vue XML
    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
    <html><body>
     
    <form method="post" action="xml">
     
    <?php for($i=0; $i < $this->standard ; $i++){ ?>
     
          Nom  :   <input type="text" name="name[]"/> 
     
     
          Prenom :  <input type="text" name="surname[]"/> 
     
     
    <?php } ?>
     
      <input type="submit" value="Go" />
     
    </form>
     
    <?php
               if ( ! empty($_POST) ) {
                 $xml = '<?xml version="1.0" ... ?>' ;
               for($i=0; $i < $this->standard ; $i++){
                 $xml .= '<utilisateur>' ;
                 $xml .= '<nom>' . htmlentities($_POST['name'][$i]) . '</nom>' ;
                 $xml .= '<prenom>' . htmlentities($_POST['surname'][$i]) . '</prenom>' ;
                 $xml .= '</utilisateur>' ;
                }
                 if(@file_put_contents('utilisateur.xml', $xml))
    	echo '<p>XML enregistré !</p>' ;
    else
    	echo '<p>Erreur ! XML non enregistré !</p>' ;
     
     
    }
    ?>
     </body></html>

  2. #2
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    $this donc ton code c'est une méthode (même si ça n'y ressemble pas)
    $this donc objet à rendre persistant.
    persistant donc option de facilité $_SESSION.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Par défaut
    Peux tu m'expliquer un peu comment faire stp

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 505
    Par défaut
    Dans ton controller, crée la méthode init , qui est l'équivalnt du constructeur dans les Controllers ZF, dedans crée une gestion de Session.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    private $_session
    public function init(){
     
    $this->_session = new Zend_Session_Namespace();
     
    }
    Ensuite, tu mets ton code en session

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    $this->_session->standard = $standard;
     
    $this->view->standard = $this->_session->standard
    Si tu instancie un objet de session, tu pourras alors récupérer tes données.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Par défaut
    Bonjour,

    merci pour votre réponse, sinon le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $this->_session->standard = $standard;
     
    $this->view->standard = $this->_session->standard
    je dois le mettre dans ma vue ?

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 505
    Par défaut
    controller

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Par défaut
    Voilà j'ai 2 vues, avec un seul contrôleur, dans la vue 1 je transfert une veriable vers le controleur, puis je récupère la valeur dans une autre vue avec $this->standard

    dans ma vue1
    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
     
    <html><body>
    <form method="post" action="parametre/xml">
    Nombre : <input type="text" name="chiffre" size="12"><br>
     
    <input type="submit" value="OK">
    </form>
     
    <?php
     
           // Démarrage de la session
     
     //Récuperation du nombre ou 0 si non saisi
    global $chiffre;
    $chiffre =(isset($_POST['chiffre']))?$_POST['chiffre']:0;
     
    ?>
                    </body></html>
    dans mon contrôleur j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public function xmlAction()
        {
     
     $this->view->standard = $this->_getParam('chiffre', 1);
     
            // action body
        }
    et dans l'autre vue 2:

    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
     
     
    <html><body>
     
    <form method="post" action="xml">
     
    <?php for($i=0; $i < $this->standard ; $i++){ ?>
     
          Nom  :   <input type="text" name="name[]"/> 
     
     
          Prenom :  <input type="text" name="surname[]"/> 
     
     
    <?php } ?>
     
      <input type="submit" value="Go" />
     
    </form>
     
    <?php
               if ( ! empty($_POST) ) {
                 $xml = '<?xml version="1.0" ... ?>' ;
               for($i=0; $i < $this->standard ; $i++){
                 $xml .= '<utilisateur>' ;
                 $xml .= '<nom>' . htmlentities($_POST['name'][$i]) . '</nom>' ;
                 $xml .= '<prenom>' . htmlentities($_POST['surname'][$i]) . '</prenom>' ;
                 $xml .= '</utilisateur>' ;
                }
                 if(@file_put_contents('utilisateur.xml', $xml))
    	echo '<p>XML enregistré !</p>' ;
    else
    	echo '<p>Erreur ! XML non enregistré !</p>' ;
     
     
    }
    ?>
     </body></html>
    mais comment fusionner ma méthode avec votre solution ?

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Par défaut
    parceque dans votre solution vous prenez pas en considération la valeur chiffre de la vue 1

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Par défaut
    c'est bon j'ai trouvé, pour réuperer la variable, j'ai fait cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this-> var= count($_POST['name']);
    Merci tous pour vos réponse

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/11/2007, 09h41
  2. Réponses: 6
    Dernier message: 18/01/2007, 10h24
  3. Récuération d'une variable qui contient une phrase
    Par lama85 dans le forum Langage
    Réponses: 1
    Dernier message: 23/08/2006, 13h52
  4. Réponses: 7
    Dernier message: 16/06/2006, 16h31
  5. Contenu d'une variable qui disparait :/
    Par Aleksis dans le forum C++
    Réponses: 10
    Dernier message: 02/06/2006, 15h50

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