Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/09/2011, 17h11   #1
Invité de passage
 
Femme
Inscription : mars 2009
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mars 2009
Messages : 8
Points : 2
Points : 2
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 :
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 :
<?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
la-stite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 11h41   #2
Invité de passage
 
Femme
Inscription : mars 2009
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mars 2009
Messages : 8
Points : 2
Points : 2
J'ai découvert qu'il fallait passer par l'action pour paramétrer tout ca, j'ai donc fait:
Code :
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 ..
la-stite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2011, 23h02   #3
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
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 ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 15h15   #4
Invité de passage
 
Femme
Inscription : mars 2009
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mars 2009
Messages : 8
Points : 2
Points : 2
Ce n'est pas ce que fais
Code :
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
la-stite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 15h53   #5
Invité de passage
 
Femme
Inscription : mars 2009
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mars 2009
Messages : 8
Points : 2
Points : 2
OK j'ai compris mon erreur il fallait faire :
Code :
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
la-stite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2011, 12h46   #6
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
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.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 10h11   #7
Invité de passage
 
Femme
Inscription : mars 2009
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mars 2009
Messages : 8
Points : 2
Points : 2
Pour les If c'est "Si le filtre est renseigné (champs centre et entreprise) alors les champs correspondant du form prennent leurs valeurs". Je vais essayer avec un Get mais je ne comprend pas pourquoi ma méthode ne fonctionne pas...
la-stite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 17h54   #8
Invité de passage
 
Femme
Inscription : mars 2009
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mars 2009
Messages : 8
Points : 2
Points : 2
EUREKA il suffisait de faire:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 <?php $form['id_centre']->renderError(); ?>
        <tr>
          <th><?php echo $form['id_centre']->renderLabel() ?>: </th> 
              <?php if(isset($filters['centre_id']) && $filters['centre_id'] != '' && $filters['centre_id'] != 0) : ?>
                 <?php $form['id_centre'] -> filters = CentrePeer::retrieveByPK($filters['centre_id']); ?>
                 <td><?php echo $form['id_centre']-> filters = CentrePeer::retrieveByPK($filters['centre_id']) ?></td>
              <?php else: ?>
               <td><?php echo $form['id_centre']->render() ?></td>
              <?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['entreprise_id']) && $filters['entreprise_id'] != '' && $filters['entreprise_id'] != 0) :?>
               <?php $form['id_entreprise'] -> filters = EntreprisePeer::retrieveByPK($filters['entreprise_id']); ?>
               <td><?php echo $form['id_entreprise']-> filters = EntreprisePeer::retrieveByPK($filters['entreprise_id']); ?></td>
            <?php else: ?>
           <td><?php echo $form['id_entreprise']->render() ?></td>
          <?php endif ?>
        </tr>
avec ceci dans l'action:
Code :
1
2
3
4
$this-> form = new TableauRecapitulatifBesoinsForm();
 
     $this->sort = $this->getSort();
     $this->filters = $this->getFilters();
Et ca marche au poil

Merci pour l'aide ca m'a éclairé!!
Maintenant le seul souci c'est que l'utilisateur ne peux pas modifier les champs rempli dynamiquement ^^ mais le plus gros des problèmes est résoluuuu MERCI!!
la-stite est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h27.


 
 
 
 
Partenaires

Hébergement Web