Bonjour,

j'ai ajouté un champ sfWidgetFormJQueryAutocompleter dans mon appli.

Ma question est la suivante : si j'entre une valeur non-préalablement existante dans ma base, comment faire pour que cette valeur soit sauvegardée ?

(Actuellement, elle me met un chiffre à la place de la chaîne tapée... )

MobiliteTable.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
public function getDataWhere($string)
    {
    $q = Doctrine_Query::create()
      ->select('nature')
      ->from('Mobilite')
      ->where('nature LIKE ?', "%$string%")
      ->orderBy('nature ASC')
      ->execute()
      ->getData();
 
     return $q;
    }
MobiliteForm.class.php :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
public function configure()
    {
       $this->addWidgets();
    }
 
    protected function addWidgets()
    {
       $this->widgetSchema['nature'] = new sfWidgetFormJQueryAutocompleter(array(
       'url'    => ('/myaction'),
       'config' => '{ scrollHeight: 250 ,
                      autoFill: false }'
       ));
    }
action.class.php :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public function executeMyAction(sfWebRequest $request)
     {
         $this->getResponse()->setContentType('application/json');
 
         $string = $request->getParameter('q');
 
         $req = Doctrine::getTable('Mobilite')->getDataWhere($string);
 
         $results = array();
         foreach ( $req as $result ){
           $results[$result->getId()] = $result->getNature();
	 }
         return $this->renderText(json_encode($results));
     }
Je creuse, je creuse mais je ne vois pas...

Est-il simplement impossible d'ajouter une nouvelle valeur dans un sfWidgetFormJQueryAutocompleter ?