Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 21-04-2011 10:05:17

Zenkken
Membre
Date d'inscription: 06-04-2011
Messages: 21

[Formulaire]{Gestion de commandes} Création dans un tableau ?

Bonjour,

J'ai un petit souci de conception... et de nombreuses questions. hmm
Je dois gérer d'un point de vue Client et Gestionnaire un module de commandes. Jusqu'ici pas de souci.

Un client aura donc face à lui un formulaire pour commander X éléments.

-> Catégorie produit (Zend_Form_Element_Select)
   |-> Type produit (Zend_Form_Element_Select)
      |-> Le produit en lui même (Zend_Form_Element_Select)
         |-> Quantité (Zend_Form_Element_Text)

Ex:
-> Lampe
   |-> Halogène
      |-> Lampe marque X blablabla
         |-> 5

--------------------
* Problème 1 : Conception
--------------------
Pour un produit aucun problème je vois la mise en forme du formulaire mais pour X produits j'aimerais éviter d'avoir une nouvelle commande à chaque fois par produit et donc de tout faire d'un coup sur une seule et même page.
Donc actuellement je vois ça comme un tableau. Une ligne = une commande :

-----------------------------------------------------------------------------------
| Catégorie | Type | Produit | Quantité | Modifier | Supprimer | Valider |
-----------------------------------------------------------------------------------
| ...
-----------------------------------------------------------------------------------

Et à chaque fois qu'une ligne est validée une en dessous vierge apparait pour enchainer si d'autres éléments sont à commander. Vous voyez l'idée ?

Le gestionnaire ou gérant comme vous voulez lui voit un tableau global et valide ou non les commandes tout en ayant en plus une colonne d'attribution du nombre d'objets commandés (ex pour 6 lampes si 3 dispo il mettra donc 3...)

Est-ce que cette idée façon tableau vous parait intuitive pour un utilisateur ? Et comment s'y prendre d'un point de vue technique ?

--------------------
* Problème 2 : Programmation
--------------------

Sans doute le plus simple à répondre, comment faire en sorte que le choix d'un 'Zend_Form_Element_Select' influe sur celui qui suit ?

Merci ^^ et désolé du pavé...

Hors ligne

 

#2 21-04-2011 11:19:32

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: [Formulaire]{Gestion de commandes} Création dans un tableau ?

Probleme 1 : tu dis une ligne = une commande, en faite non une ligne = un produit d'une commande.
ex :
commande 1 -> lampe IKEA  | Qte = 5
commande 1 -> lampe Confo| Qte = 2

Après je sais pas quel est le contexte, donc je sais pas si c'est le plus simple pour un utilisateur. Le site comporte un catalogue? Car si c'est le cas pourquoi devoir choisir ses produits avec des listes et non pas directement en ajoutant les produits à un panier via la fiche du produit?


Probleme 2 : le plus simple à répondre mais pas forcement plus simple à mettre en place, la il faut partir sur de l'ajax wink

Hors ligne

 

#3 21-04-2011 11:30:40

Zenkken
Membre
Date d'inscription: 06-04-2011
Messages: 21

Re: [Formulaire]{Gestion de commandes} Création dans un tableau ?

Oui shadypierre je me suis mal exprimé comme tu dis 'une ligne = un produit d'une commande' et au final l'ensemble de ces lignes fait la commande.

Le contexte est différent je suis en fait sur un gestionnaire de fournitures c'était juste à titre d'exemple ^^ j'ai pensé à une lampe à défaut d'avoir des idées lumineuses... Donc nan pas de catalogue ou du moins pas dans le sens des sites de Ecommerce ou autre.

Pour le second problème le verdict est tombé je suis la route de l'Ajax ^^ le faire en full PHP imposera un rechargement de page à chaque sélection ce qui sera tout sauf optimisé.

Hors ligne

 

#4 21-04-2011 12:06:38

ElNox
Nouveau membre
Date d'inscription: 21-04-2011
Messages: 1

Re: [Formulaire]{Gestion de commandes} Création dans un tableau ?

Bonjour,

J'ai eu à peu près la même chose à faire de mon côté et ce sujet a déjà été discuté sur le forum. Jérémy Kendall (très fort !!) propose une solution pour dynamiser les formulaires. Il suffirait juste que tu adaptes l'évènement déclencheur (sur l'exemple un bouton) à ce que tu veux : si j'ai bien compris la validation d'une ligne du formulaire.
Voilà son travail :
http://www.jeremykendall.net/2009/01/19 … zend-form/

Hors ligne

 

#5 21-04-2011 16:12:49

Zenkken
Membre
Date d'inscription: 06-04-2011
Messages: 21

Re: [Formulaire]{Gestion de commandes} Création dans un tableau ?

Autre problème et ce après de nombreux essais à priori cela revient régulièrement comme question...

Je cherche à mettre en place pour ce formulaire un décorateur pourtant simple du type

<form>
    <table>
        // ligne servant aux dénominations des colonnes
        <tr>
            <td>Categorie</td>
            <td>Type</td>
            <td>...</td>
            <td>Quantite</td>
            <td>Modifier</td>
            <td>Supprimer</td>
        </tr>
       
        // ligne destinée à la commande d'un article
        // cette ligne doit apparaitre autant de fois que nécessaire
        <tr>
            <td>Zend_Form_Element_Select('categorie');</td>
            <td>Zend_Form_Element_Select('type');</td>
            <td>...</td>
            <td>Zend_Form_Element_Text('quantite')</td>
            <td>Zend_Form_Element_Button('modifier')</td>
            <td>Zend_Form_Element_Button('supprimer')</td>
        </tr>
    </table>
</form>

Je me perds concernant le setter du décorateur de mon formulaire.
$this->setDecorators(...?...);

Dernière modification par Zenkken (21-04-2011 16:14:46)

Hors ligne

 

#6 26-04-2011 15:35:22

Zenkken
Membre
Date d'inscription: 06-04-2011
Messages: 21

Re: [Formulaire]{Gestion de commandes} Création dans un tableau ?

Bon j'avance petit à petit ^^ je posterai au fur et à mesure si ceci peut aider d'autres utilisateurs dans le futur.

Concernant le décorateur :

Celui de base ne m'allait pas j'ai donc trouvé une astuce via le site 'http://wiip.fr/' c'est un gros point de comprendre le fonctionnement de ces fameux décorateurs et ce lien m'a aidé il y en a certainement d'autres mais je l'indique quand même.

J'ai donc dans mon cas mis en forme comme présenté plus haut :

Code:

        /* Form Elements & Other Definitions Here ... */      
        $this   ->setMethod('post')            // Type de validation POST
                ->setName('...')    // Nom du formulaire
                ->setDecorators(            // Décorateur du formulaire global
                    array(
                        'FormElements',
                        array('HtmlTag', array('tag' => 'tr')),
                        array(array('table' => 'HtmlTag'), array('tag' => 'table')),
                        'Form'
                    )
                );

Dans cette première partie je me retrouve donc avec
<form...><table><tr></tr></table></form>

Il m'a donc suffit dans un second temps de me créer un décorateur pour mes éléments puis de l'appliquer sur ces derniers.

Code:

        // Déclaration du décorateur d'élément        
        $decorators = array(
            'ViewHelper',
            'Errors',
            array('Description', array('tag' => 'p', 'class' => 'description')),
            array('HtmlTag', array('tag' => 'td')),
        );

Chaque élément est donc dans ma ligne bien encadré par un <td></td> j'ai vérifié le code source de la page ça m'a l'air correct.

Voilà pour ce point l'ajout de ligne dynamique est encore en préparation.

Dernière modification par Zenkken (26-04-2011 15:40:48)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages