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 :

Remplir dynamiquement un formulaire [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mars 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2009
    Messages : 8
    Par défaut Remplir dynamiquement un formulaire
    Voila mon souci c'est que j'ai un formulaire avec plusieurs champs, dont 2 que je voudrais remplir dynamiquement (en provenance d'un filtre)
    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
     <tr>
              <th><?php echo $form['id_centre']->renderLabel() ?>: </th>
              <?php if (isset($filters)): ?>
              <?php if (array_key_exists('id_centre', $filters)): ?>
              <?php if ($filters['id_centre'] != 0): ?>
     
              <td><?php echo $form['id_centre']= CentrePeer::retrieveByPK($filters['id_centre']); ?></td>
              <?php else: ?>
              <td><?php echo $form['id_centre']-> render(); ?></td>
              <?php endif; ?>
              <?php endif; ?>
              <?php endif; ?>
            </tr>
          </div>
          <div class="sf_admin_form_row sf_admin_text sf_admin_form_field_id_entreprise">
            <?php $form['id_entreprise']->renderError(); ?>
            <tr>
              <th><?php echo $form['id_entreprise']->renderLabel() ?>: </th>
               <?php if (isset($filters)): ?>
              <?php if (array_key_exists('id_entreprise', $filters)): ?>
              <?php if ($filters['id_entreprise'] != 0): ?>
     
              <td><?php echo $form['id_entreprise']= EntreprisePeer::retrieveByPK($filters['id_entreprise']); ?></td>
                <?php else: ?>
              <td><?php echo $form['id_entreprise']->render() ?></td>         
              <?php endif; ?>
              <?php endif; ?>
              <?php endif; ?>
    Le souci c'est que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $form['id_centre']= CentrePeer::retrieveByPK($filters['id_centre']); ?></td>
    est censé me retourner la valeur que je veux, et qu'au lieu de cela rien ne s'affiche et mon input disparait. Meme lorsque je ne met rien dans le filtre, rien ne se passe..J'ai bien compris que j'utilisais pas la bonne méthode, mais si quelqu'un a une idée...
    Merci pour votre aide

  2. #2
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mars 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2009
    Messages : 8
    Par défaut
    J'ai découvert qu'il fallait passer par l'action pour paramétrer tout ca, j'ai donc fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    if ($request->isMethod('post')) {
            $params = $request->getParameter($this->form->getName());
     
            if (array_key_exists('centre_id', $filters)):
             if (isset($filters['centre_id']) && $filters['centre_id'] != '' && $filters['centre_id'] != 0) :
                 $params['id_centre'] = CentrePeer::retrieveByPK($filters['id_centre']);
               endif;
            endif;
     
            if (array_key_exists('entreprise_id', $filters)):
             if (isset($filters['entreprise_id']) && $filters['entreprise_id'] != '' && $filters['entreprise_id'] != 0) :
                $params['id_entreprise']= EntreprisePeer::retrieveByPK($filter['entreprise_id']);
               endif;
               endif;
    Mais ca ne marche toujours pas ..

  3. #3
    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
    CentrePeer::retrieveByPK($filters['id_centre']) retourne un objet "Centre" pas une donnée.

    Il faut récupérer le champ voulut sur ton objet.

    Question subsidiaire, pourquoi propel ?

  4. #4
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mars 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2009
    Messages : 8
    Par défaut
    Ce n'est pas ce que fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CentrePeer::retrieveByPK($filters['id_centre'])
    ?
    $filters['id_centre'] est censé me retourner la valeur du champ id_centre non?

    Sinon Propel car c'est une application dont la programmation a débuté en 2007 du coup a ce moment la, Propel était je crois plus intéréssant.. ce n'est pas moi qui ai fait ce choix je dois dire, je fais juste évoluer l'appli..

    Merci pour ta réponse en tout cas je vais regarder de plus prêt

  5. #5
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mars 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2009
    Messages : 8
    Par défaut
    OK j'ai compris mon erreur il fallait faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (array_key_exists('entreprise_id', $filters)):
          if (isset($filters['entreprise_id']) && $filters['entreprise_id'] != '' && $filters['entreprise_id'] != 0) :
               $params['id_entreprise']= $filters['entreprise_id'];
           endif;
    endif;
    Mais cela ne fonctionne toujours pas, je me demande si ce n'est pas a cause de sfWidgetFormPropelJQueryAutocompleter utilisé par 'id_entreprise' qui est lié à l'id_centre

  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
    J'ai un peu de mal a comprendre l'ensemble de ton code.

    Je ne comprend pas le pourquoi de cette cascade de if, n'y ce que tu veux faire de $param.

    Ton premier code pourrait être le bon, mais tu récupères un objet (un enregistrement) qui répond au criteria "id = id_centre"

    A mon avis si tu lui appliques un getter genre getMaData() tu devrais pouvoir récupérer la valeur que tu recherches.

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

Discussions similaires

  1. [AC-2010] Remplir dynamiquement un modèle de mail avec champs d'un autre formulaire.
    Par clickandgo dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/08/2013, 14h15
  2. remplir de facon dynamique un formulaire
    Par comcom94 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/10/2008, 11h03
  3. [Stratégie] Gérération dynamique de formulaire
    Par stoukou dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 27/09/2005, 09h37
  4. Réponses: 5
    Dernier message: 09/08/2005, 17h38
  5. imprimer graphique croisé dynamique ou formulaire
    Par bossun dans le forum VBA Access
    Réponses: 4
    Dernier message: 23/06/2004, 11h53

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