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 :

Modifier variable statique avec Zend [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 36
    Points
    36
    Par défaut Modifier variable statique avec Zend
    Bonjour.

    J'utilise Zend et j'ai un problème très **** :

    Mon problème:

    Je veux utiliser une liste statique dans mon controleur,
    on affiche un par un dans l'index et on élimine élément déjà affiché...
    mais sa marche pas!!!

    ex :

    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
    class ColorController extends Zend_Controller_Action
    {
    public static $color = array("blue", "vert", "rose");
     
          public function indexAction()
        {
            $coleurAfficher = self::$color[0];
     
            $nouvelleListe = self::$color;
            unset($nouvelleListe[0]);
     
            self::$color = $nouvelleListe;
     
            echo $coleurAfficher;
        }
    }
    puis les autres fichiers...
    mais chaque fois je clique sur index de color c'est toujours "blue" qui affiche???

    c'est normal? si oui comment faire un truc comsa, sinon pourquoi?

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    Tu ne peux pas modifier une liste écrite en dur ! Même si tu fais un lors de l'appel suivant ton tableau aura récupéré les valeurs initiales codées en dur dans la classe (heureusement).

    Tu peux modifier tes tableaux tant que ton script est en cours d'exécution.
    Pour arriver à faire ce que tu veux, il faudrait réécrire le code de ta classe en dur à l'exécution et puis il faudrait aussi espérer dans ton cas que chaque client sélectionne les couleurs dans le même ordre -> bonne chance

    Bref, il te faut suivre pour chaque utilisateur, la couleur sélectionnée de manière à ne pas la proposer lors des appels suivants. (Si j'ai bien tout compris)
    Il te faut récupérer pour cela la couleur déjà sélectionnée lors de l'appel précédent. Via $_GET ou $_POST ou même $_SESSION
    Cela donnerait un truc du genre (tu peux sécuriser et améliorer) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php 
     
    class ColorController extends Zend_Controller_Action {
     
       static $color = array('blue', 'vert', 'rose');
     
       function indexAction() {
          $colorsList = array_diff(self::$color, array($_GET['previousColor']);
          echo $colorsList[0];
       }
    }
    ?>

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 36
    Points
    36
    Par défaut
    Merci Xysyo.

    En fait, le problème est un peu différent:

    J'ai une liste de produit récupéré depuis la BDD(base de données) selon formulaire de client. (liste statique pour resservir la liste)

    Et je propose les produits un par un au client pour qu'il retienne quelque produits(encore une liste statique pour chaque client).

    La condition est :
    - ne pas proposer même produit ou produit retenue(modif liste statique)
    - ne pas faire des requêtes pour chaque produit pour proposer.

    C'est un peu chaud!

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    il me semble que tu mélanges php(côté serveur) avec javascript(côté client)
    J'ai une liste de produit récupéré depuis la BDD(base de données) selon formulaire de client. (liste statique pour resservir la liste)
    Cela n'a rien de statique.
    Et je propose les produits un par un au client pour qu'il retienne quelque produits(encore une liste statique pour chaque client).
    Là aussi cela n'a rien de statique.
    La condition est :
    - ne pas proposer même produit ou produit retenue(modif liste statique)
    - ne pas faire des requêtes pour chaque produit pour proposer.
    Bon alors là c'est définitivement pas statique.

    Si tu ne veux pas faire de requêtes pour chaque produit à proposer, c'est que tu dois rappatrier tous les produits d'un coup et ensuite gérer la liste des produits restant à proposer en fonction des choix du client avec du javascript.

    Bref, bon courage

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 36
    Points
    36
    Par défaut
    Dslé...mon problème persiste...

    Pourquoi on peut pas garder une liste (une fois de l'execution de requete) de coté serveur en PHP et l'utiliser après pour modifier(ajout/suppression des éléments) tant que le client ne quitte pas mon site?

    en JAVA, j'arrivais à faire ce genre de chose avec une liste statique:

    j'ai un string static chaine et chaque validation du formulaire, je concatène cet chaine avec une autre du formulaire et j'arrivais l'afficher en bas du formulaire le string concaténé...

    je ne comprends rien... aide-moi svp...

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    Ah je comprends mieux : en PHP il n'y a aucune persistance de quoi que ce soit une fois une réponse envoyée. C'est différent de Java avec ses serveurs d'application. Tu dois utiliser une session pour gérer cette persistance. Regarde du côté des tutos sur ce même site

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 03/01/2012, 15h27
  2. [AC-2003] Modifier le nom d'une variable (objet) avec un compteur.
    Par Treguerio dans le forum VBA Access
    Réponses: 2
    Dernier message: 10/05/2011, 15h23
  3. Réponses: 7
    Dernier message: 07/05/2010, 09h52
  4. Réponses: 5
    Dernier message: 19/09/2008, 22h25
  5. Impression d'éléments Statiques avec QuickReport
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 9
    Dernier message: 02/12/2003, 18h49

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