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

Symfony PHP Discussion :

Ajout champs formulaire


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 82
    Par défaut Ajout champs formulaire
    Bonjour à tous,

    J'aimerais savoir si il existe la possibilité de rajouter des champs à un formulaire (plus précisement du backend), qui ne sont donc pas lié à l'objet du formulaire.

    Pour le moment j'ai surchargé le fichier _form_fieldset.php en faisant ainsi:
    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
    <fieldset id="sf_fieldset_<?php echo preg_replace('/[^a-z0-9_]/', '_', strtolower($fieldset)) ?>">
      <?php if ('NONE' != $fieldset): ?>
        <h2><?php echo __($fieldset, array(), 'messages') ?></h2>
      <?php endif; ?>
        <div class="sf_admin_form_row sf_admin_text sf_admin_form_field_reference_1">
            <div>
                <label for="jointure_references_reference_1">R&eacute;f&eacute;rence 1</label>
                    <div class="content">
                        <input name="reference_1" id="jointure_references_reference_1" type="text"  />
                    </div>
            </div>
        </div>
        <div class="sf_admin_form_row sf_admin_text sf_admin_form_field_reference_2">
            <div>
                <label for="jointure_references_reference_2">R&eacute;f&eacute;rence 2</label>
                    <div class="content">
                        <input name="reference_2" id="jointure_references_reference_2" type="text"  />
                    </div>
            </div>
        </div>
     
     
      <?php foreach ($fields as $name => $field): ?>
        <?php if ((isset($form[$name]) && $form[$name]->isHidden()) || (!isset($form[$name]) && $field->isReal())) continue ?>
        <?php include_partial('jointureReferences/form_field', array(
          'name'       => $name,
          'attributes' => $field->getConfig('attributes', array()),
          'label'      => $field->getConfig('label'),
          'help'       => $field->getConfig('help'),
          'form'       => $form,
          'field'      => $field,
          'class'      => 'sf_admin_form_row sf_admin_'.strtolower($field->getType()).' sf_admin_form_field_'.$name,
        )) ?>
      <?php endforeach; ?>
     
    </fieldset>
    Mais je pense pas que ce soit très "propre".
    Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Pourquoi ais-je l'impression que tu fais un truc inutilement compliqué ?

    Si j'ai bien compris, tu as un form (que tu tortures bizarrement) et d'autres champs qui ne sont pas du forms.

    Quel est exactement le besoin de ce montage ? D'où viennent les champs supplémentaires ? D'où viennent les données ? Où vont les données une fois traitées ?

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 82
    Par défaut
    Je vais essayer de t'expliquer.
    Pour faire simple j'ai 3 champs dans une table: index_catalogue, index_secondaire et lien_de_parente.

    Le formulaire porte sur cette table.
    Sauf que les index sont des id de la table catalogue. Ces id sont représentés par un champs référence (par exemple l'insertion dont l'id vaut 1 a dans le champs référence la valeur STD400).

    Ce que j'aimerai faire c'est avoir les champs index_catalogue et index_secondaire cachés (ca c'est facile avec sfWidgetFormInputHidden), et avoir deux champs: référence 1 et référence 2.

    La personne remplira alors ces champs là et un script ira chercher dans la base de données, dans la table catalogue et proposera toutes les référence que l'utilisateur a tapé. Par exemple si je tape STD, je pourrai avoir le choix entre STD400, STD300, FX2STD400, etc.

    Une fois que l'utilisateur a choisit la bonne référence pour la référence 1, le champs index_catalogue s'auto-complètera par l'id de cette référence. De même pour référence 2 et index_secondaire.

    Une fois le formulaire soumis, ces deux champs ne me serviront donc à rien. A aucun moment je dois enregistrer dans la base les valeurs de ces champs. Ce sont en quelque sorte des champs de recherche qui permettent de remplir d'autre champs hidden.

    Étais-je assez clair et précis?? :S Si tel n'est pas le cas, demande moi plus de précision, j'essayerai d'apporter des compléments d'information.

    Merci.

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Oui, je vois, et je pense avoir une solution plus simple.

    Tu as la possibilité de mettre une liste plutôt qu'un champ caché. Et mieux, tu peux facilement faire une liste qui se rempli en fonction de ce que l'utilisateur tape, par ajax (requête en json). Il y a un widget dans les sfExtraWidgetPlugin (non a caution, il est minuit passé ) qui le fait automatiquement.

    C'est peut-être une solution plus élégante pour ton problème, et plus rapide pour les utilisateur, surtout si tu tournes en milieu fermé et peut imposer l'utilisation du JS sur les postes.


    Pour le principe. Par convention, les noms des champs de liaison terminent par _id.

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 82
    Par défaut
    Citation Envoyé par Michel Rotta Voir le message
    Et mieux, tu peux facilement faire une liste qui se rempli en fonction de ce que l'utilisateur tape, par ajax (requête en json). Il y a un widget dans les sfExtraWidgetPlugin (non a caution, il est minuit passé ) qui le fait automatiquement.

    Pour le principe. Par convention, les noms des champs de liaison terminent par _id.
    Ca tombe bien, j'ai déjà ce plugin d'installer pour le tinyMCE...
    Quelle est ce widget??
    Comment faire une liste cachée: sfWidgetInputChoiceHidden??

    Pour le nom des champs de liaison, comme je te l'ai expliqué dans un topic sur l'admingenerator avec doctrine, je ne peux changer les tables, leur structure et le nom des champs malheureusement...

  6. #6
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Le widget est : sfWidgetFormJQueryAutocompleter.

    De l'info pour utiliser le plugin : http://www.symfony-project.org/blog/...and-validators

    Pour le nom des champs de liaison, comme je te l'ai expliqué dans un topic sur l'admingenerator avec doctrine, je ne peux changer les tables, leur structure et le nom des champs malheureusement...
    Désolé, je ne peux retenir les particularités de chaque projets de chaque intervenant. Le prix à payer pour l'information.

Discussions similaires

  1. [AC-2010] Ajout champ formulaire vers autre table
    Par charliee dans le forum Access
    Réponses: 9
    Dernier message: 07/05/2014, 17h20
  2. Ajouter champs formulaire
    Par Jibego dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/04/2014, 16h23
  3. [MySQL] ajouter champs formulaire
    Par doublemetre dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 04/02/2012, 10h57
  4. [2.x] Ajout champ formulaire
    Par dubitoph dans le forum Symfony
    Réponses: 11
    Dernier message: 19/12/2011, 12h49
  5. Ajout champ formulaire après menu déroulant
    Par Waka56 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 07/06/2011, 13h31

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