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/03/2011, 17h20   #1
Invité régulier
 
Sébastien
Inscription : mai 2008
Messages : 20
Détails du profil
Informations personnelles :
Nom : Sébastien
Âge : 34

Informations forums :
Inscription : mai 2008
Messages : 20
Points : 8
Points : 8
Par défaut Donner une valeur par défaut à dans une liste

Cette discussion était à deux doigts de me procurer l'information que je cherche.
Je suis en train de créer un formulaire indépendant de la base de données, chargé de filtrer l'affichage en cours par "départements".
Pour faire au plus simple j'ai mis un sfWidgetFormChoice avec ma liste de départements :
Code :
1
2
3
4
5
6
7
8
 
$departements = Doctrine_Core::getTable('Representation')->getDepartements($this->getOption('region'));
 
$this->widgetSchema['departements'] = new sfWidgetFormChoice(array(
			'choices'  => $departements,
			'expanded' => true,
			'multiple' => true
		));
Le formulaire s'affiche parfaitement bien, mais j'ai besoin, en fonction des préférences de l'utilisateur de cocher ou décocher certains des items.
Y'a t'il un moyen de cibler individuellement les éléments du Widget pour leur attribuer une valeur par défaut via setDefault() ?
sebastien.bd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 18h16   #2
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
Cela dépend du type de form utilisé.

Est-ce un form basé sur doctrine ou un form libre ?
__________________
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 09/03/2011, 18h40   #3
Invité régulier
 
Sébastien
Inscription : mai 2008
Messages : 20
Détails du profil
Informations personnelles :
Nom : Sébastien
Âge : 34

Informations forums :
Inscription : mai 2008
Messages : 20
Points : 8
Points : 8
Citation:
Envoyé par Michel Rotta Voir le message
Est-ce un form basé sur doctrine ou un form libre ?
C'est un formulaire libre. J'ai vu que vous donniez une solution pour un formulaire basé sur Doctrine (utiliser les champs par défaut), mais je n'ai rien trouvé concernant mon cas.

Il faut dire que je ne savais pas que cela s'appelait formulaire "libre". J'ai essayé avec indépendant et ça ne donnait rien... évidemment.
sebastien.bd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 10h11   #4
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
Je ne suis pas sur que la dénomination officiel soit "libre" mais face à dépendant, c'est un terme que j'utilise...

Il faut utiliser la méthode setDefault() tout simplement.
__________________
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 10/03/2011, 20h22   #5
Invité régulier
 
Sébastien
Inscription : mai 2008
Messages : 20
Détails du profil
Informations personnelles :
Nom : Sébastien
Âge : 34

Informations forums :
Inscription : mai 2008
Messages : 20
Points : 8
Points : 8
Merci de m'avoir mis sur la voie. J'avais bien tenté setDefault() mais je n'arrivais pas à trouver l'ordre des arguments dans le cas d'un sfWidgetFormChoice.

Ceci fonctionne dans le cas que j'ai précisé ci-dessus
($index est la valeur 0-indexée du département dont je veux modifier la valeur par défaut):

Code :
$this->widgetSchema['departements']->setDefault($index, true);
Je n'ai pas trouvé le moyen d'affecter une valeur par défaut à l'ensemble des choix du widget, sous forme dans tableau par exemple, mais ça marche.
sebastien.bd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 09h45   #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
Citation:
Envoyé par sebastien.bd Voir le message
Je n'ai pas trouvé le moyen d'affecter une valeur par défaut à l'ensemble des choix du widget, sous forme dans tableau par exemple...
Ceci n'est pas possible.

Sauf si tu dois le faire dans de nombreux form libre. Tu peux alors créer un dérivé de sfFormWeb y ajouter cette méthode et dériver tes form depuis celui-ci.

A noter que pour mettre des valeurs par défaut sur des form liés, la procédure n'est pas la même.
__________________
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 11/03/2011, 17h44   #7
Invité régulier
 
Sébastien
Inscription : mai 2008
Messages : 20
Détails du profil
Informations personnelles :
Nom : Sébastien
Âge : 34

Informations forums :
Inscription : mai 2008
Messages : 20
Points : 8
Points : 8
J'ai dû mal m'exprimer, mais je suis tout nouveau en Symfony, et j'ai un peu de mal avec le vocabulaire.
Dans ma liste de départements, je voulais pouvoir sélectionner par défaut un ou plusieurs départements avec un seul appel de fonction.
J'ai réussi à le faire avec setDefaut() comme ceci :
Code :
$this->widgetSchema[$monFormChoice]->setDefaut($mesIndexes)
avec $mesIndexes qui est un tableau contenant les index des départements que je veux voir sélectionnés par défaut. Et ça marche !
sebastien.bd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 17h49   #8
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
ok

Oui, c'est comme cela qu'il faut l'indiquer.

Mais il faut des tables avec une liaison n-n pour le stocker...

Mais dans un form libre, c'est correcte.

Et le retour est un array aussi...
__________________
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 26/04/2011, 10h07   #9
Membre régulier
 
Inscription : janvier 2008
Messages : 212
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 212
Points : 75
Points : 75
Envoyer un message via Skype™ à mantex
et pour le champs permissions_list de sfguardDoctrinePlugin tu as une idée michel ?
mantex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 10h39   #10
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
oups, vieux sujet...

Les champs permission de sfGuard ? Ils sont dans une vraie liaison n-n.

Après, je ne sais pas très bien le traitement que tu veux leur faire subir !
__________________
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
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h19.


 
 
 
 
Partenaires

Hébergement Web