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_Form PHP Discussion :

SubForm ou élément composé ?


Sujet :

Zend_Form PHP

  1. #1
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Par défaut SubForm ou élément composé ?
    Bonjour,

    Dans mon formulaire, je souhaite que l'utilisateur puisse ajouter une ou plusieurs expériences professionnelles, chaque expérience étant caractérisé par des types de base (nom de l'entreprise, poste occupé...).

    J'ai donc pensé à deux choses : soit je créé un élément composé du type App_Form_Element_Experience qui affichera et validera l'ensemble des données (auquel cas, j'ajouterai dans mon formulaire un ou plusieurs éléments de ce type), ou alors je créé ou sous-formulaire (SubForm) que j'instancie en un ou plusieurs fois dans mon formulaire principal.

    Quelle est, selon vous, la meilleure manière de faire ? Quelles sont les avantages et les inconvénients de tel ou tel méthode ?

    Merci

  2. #2
    Membre très actif Avatar de magnus2005
    Profil pro
    Ingenieur SI
    Inscrit en
    Avril 2005
    Messages
    454
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingenieur SI

    Informations forums :
    Inscription : Avril 2005
    Messages : 454
    Par défaut
    Ce que je fait dans ces cas :
    1. je crée les éléments de base nécessaire dans le Zend_form correspondant pour ton cas à une expérience pro et je les mets dans le même groupe avec Display group et je cache ce groupe via la CSS.
    2. j'ajoute un bouton 'Ajouter exp pro' et Avec JQuery quand on clique sur le bouton je fait une copie du groupe créé avec Zend_form et j’incrémente un compteur javascript que me sert à modifier un attribut name à la volée. Le name sera 'nomduchampdebase' +'_' + compteur.
    3 Quand le formulaire est soumis je créé dynamiquement les nouveau éléments nécessaire en me basant sur la méthode qui à créée la partie 1 et en parsant les clef du formulaire commençant par 'nomduchampdebase' +'_'.

    Avantage de la methode :
    peu de javascript environ 7 lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    compteur++;
    var contenu = jQuery('#idgroupdebase').html();
    //replace ALL sur contenu sur nomduchampdebase par 
    //nomduchampdebase_ + compteur
    jQuery('#idform').append(contenu);
    Traitement avec Zend_Form complet on garde bien les mêmes validations.
    Pour modifier le formulaire il suffit de modifier les éléments Zend_Form pas besoin de revenir sur la javascript.

    Suis je claire ?

  3. #3
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Par défaut
    Très clair, ça répond parfaitement .

    Merci !

  4. #4
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    La réponse est trés bonne cependant afin de faire comme dans un formulaire standard j aurais mis pour le nom du champs

    nomduchamps[position]

  5. #5
    Membre très actif Avatar de magnus2005
    Profil pro
    Ingenieur SI
    Inscrit en
    Avril 2005
    Messages
    454
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingenieur SI

    Informations forums :
    Inscription : Avril 2005
    Messages : 454
    Par défaut
    Effectivement un collègue m'a fait la même remarque.
    Du coup je lui posé la question suivante :
    Qu'elle est traitement exacte que fait PHP au niveau de la conservation des index spécifié ?
    J'ai pas trouvé la doc zend sur cette spécification et du coup j'ai pas fait le test en PHP 5.3.

    Dans tous les cas j'ajoute un caractère identifiant en plus pour différencier le groupe de base qui sert à la génération par rapport au champs générés ce qui donnerait :
    'nomduchampdebase' +'_' +'[index]'

    J'ai eu une remarque sur le JQuery :
    On m'a dit que ce serait plus propre de remplacer les attributs via la DOM sauf que ça oblige à faire plus de code et des vérifications plus poussées voir spécifique selon les champs.
    avec ma méthode 'ReplaceALL' je change tous donc je prend tous les cas en compte en plus des 'name' comme les 'for' pour les tag 'label'

  6. #6
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Je n ai rien vue non plus du coté des spécifications mais je sais qu avec ma notation on recupere directement un tableau nomduchamps

  7. #7
    Membre très actif Avatar de magnus2005
    Profil pro
    Ingenieur SI
    Inscrit en
    Avril 2005
    Messages
    454
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingenieur SI

    Informations forums :
    Inscription : Avril 2005
    Messages : 454
    Par défaut
    Oui mais la question est quand il y a plusieurs tableaux du type :
    ligne_champ_nom[0] ligne_champ_prenom[0] ligne_champ_age[0]
    ligne_champ_prenom[1] ligne_champ_age[1]
    ligne_champ_nom[2] ligne_champ_age[2]
    ligne_champ_nom[3] ligne_champ_prenom[3] ligne_champ_age[3]

    Est ce PHP me retourne toujours les correspondances selon les index et pas un truc sans index ?
    Il faudrait que j'essaie déjà pour voir sur la conf que j'ai.

  8. #8
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Pourquoi ça retournerait sans index? Vue que quand on ajoute un element on met à jour les index

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/03/2015, 18h31
  2. [Algo] Trouver un arrangement ou une combinaison d'éléments
    Par Morvan Mikael dans le forum Algorithmes et structures de données
    Réponses: 16
    Dernier message: 20/04/2013, 11h46
  3. [XSD] ComplexType composé d'éléments contextuellement variables?!
    Par kisuisje59 dans le forum Valider
    Réponses: 1
    Dernier message: 21/03/2012, 17h29
  4. Réponses: 5
    Dernier message: 08/04/2009, 12h15
  5. liste déroulante et élément composé
    Par oulspplus dans le forum IHM
    Réponses: 3
    Dernier message: 13/08/2008, 16h21

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