Récupération de la valeur d'un select dans un formulaire
Bonjour,
Je fais un formulaire de recherche sur une vue :
mon formulaire ArgusSearchType.php :
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 29
|
<?php
namespace quad\MainBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
class ArgusSearchType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('annee', 'text',array('label'=>'Année','required'=>false))
->add('modele' ,'entity',array('class' => 'quad\\MainBundle\\Entity\\Modele','label'=>"Modele",'property' => 'modele','required'=>false))
->add('actif', 'choice',array('choices'=>array(0=>"Non",1=>"Oui"),'label'=>'Actif','required'=>false));
}
public function getName()
{
return 'argus_search';
}
public function getDefaultOptions(array $options)
{
return array(
'data_class' => 'quad\MainBundle\Entity\ArgusSearch',
);
}
} |
Mon controller :
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 29 30
|
public function indexAction()
{
$em = $this->getDoctrine()->getEntityManager();
$entity = new ArgusSearch();
$form = $this->createForm(new ArgusSearchType(), $entity);
$request = $this->getRequest();
$form->bindRequest($request);
if ($form->isValid() && $request->getMethod() == 'POST') {
$data = $form->getData();
$annee = $form["annee"]->getData();
$modeleId = $form["modele"]->getData();
echo "modeleId :$modeleId";
$actif = $form["actif"]->getData();
$entities = $em->getRepository('quadMainBundle:Argus')->findByFiltreArgus($annee,$modeleId,$actif);
}
else{
$entities = $em->getRepository('quadMainBundle:Argus')->findAll();
}
return $this->render('quadMainBundle:Argus:index.html.twig', array(
'entities' => $entities,
'form' => $form->createView()
));
} |
ma vue :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
<form action="{{ path('admin_argus') }}" method="post" {{ form_enctype(form) }}>
<table width="100%">
<tr>
<td>{{ form_label(form.modele) }}</td>
<td>{{ form_widget(form.modele) }}</td>
<td>{{ form_label(form.annee) }}</td>
<td>{{form_widget(form.annee) }}</td>
<td>{{ form_label(form.actif) }}</td>
<td>{{form_widget(form.actif) }}</td>
<td><button type="submit">Filtrer</button></td>
</tr>
</table>
{{ form_rest(form) }}
</form> |
Avec ce code je n'ai pas de problème lorsque je souhaite rechercher sur actif ou année. Par contre lorsque je souhaite rechercher sur un modèle ça ne fonctionne pas, je récupère pas la valeur de mon select mais la valeur affiché.
Je ne vois pas ou est l'erreur, merci de votre aide.
Olivier
Rechecher un contact dans une table
je souhaite rechercher des infos dans une table
Dans un premier temps je permet à l'utilisateur de saisir du text puis j'utilise cette valeur comme critère de recherche
Je vous informe que je suis très debutant en symfony2, un coup de pouce me ferait du bien
Ma route :
Code:
1 2 3 4 5
| admin_argus:
pattern: /rechercher
defaults: { _controller: CnceAnnuaireBundle:Contact:rechercher2 }
requirements:
_method: GET|POST |
mon controlleur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| public function Rechercher2Action()
{
$em = $this->getDoctrine()->getEntityManager();
// création d'un nouveau objet Contact
$entity = new Contact();
$form = $this->createForm(new ContactRechercheForm(), $entity);
$request = $this->getRequest();
$form->bindRequest($request);
if ($form->isValid() && $request->getMethod() == 'POST') {
$data = $form->getData();
$nom = $form["Nom"]->getData();
$entities = $em->getRepository('CnceAnnuaireBundle:Contact')->findByFiltreArgus($nom);
}
else{
$entities = $em->getRepository('CnceAnnuaireBundle:Contact')->findAll();
}
return $this->render('CnceAnnuaireBundle:Contact:index.html.twig', array(
'entities' => $entities,
'form' => $form->createView()
));
} |
et pour ma vue :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| {% block body %}
<h1>Recherche d'un contact</h1>
<form action="{{ path('admin_argus') }}" method="post" {{ form_enctype(form) }}>
<table width="100%">
<tr>
<td>{{ form_label(form.Nom) }}</td>
<td>{{ form_widget(form.Nom) }}</td>
<td><button type="submit">Filtrer</button></td>
</tr>
</table>
{{ form_rest(form) }}
</form>
{% endblock%} |
Mon formulaire :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <?php
namespace Cnce\AnnuaireBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
class ContactRechercheForm extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
// Champ de recherche full text
$builder->add('Nom', 'text', array('label' => 'Indication'));
}
public function getName()
{
return 'contactrecherche';
}
public function getDefaultOptions(array $options)
{
return array(
'data_class' => 'Cnce\AnnuaireBundle\Entity\Contact',
);
}
} |
Mais malgré tout je n'arrive pas à faire executer la fonction bon du mois je ne vois pas de resultat