Je me pose une question , sur laquelle je ne trouve pas de doc, et a laquelle je ne vois pas vraiment de réponse...
En clair , je recherche en base via le "sfWidgetFormJQueryAutocompleter" mon utilisateur.
J'utilise donc l'option "value_callback" pour formater mon texte apres la validation de l'autocompletion (Si on ne l'utilise pas , ca renvoie l'id de la selection du Widget)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $this->widgetSchema['last_name'] = new sfWidgetFormJQueryAutocompleter(array( 'url' => 'common/getUsersWithAdress' , 'value_callback' => array('User','userSearch')) );
Maintenant , mon autre problème, et non des moindres se situe dans le fait que lorsque je selectionne mon utilisateur, je souhaiterais pré remplir automatiquement le formulaire qui lui est associé(qui est un EmbedForm)
Et a vrai dire je ne vois pas mettre ceci en place avec le widget existant...
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
29
30
31 public function render($name, $value = null, $attributes = array(), $errors = array()) { $visibleValue = $this->getOption('value_callback') ? call_user_func($this->getOption('value_callback'), $value) : $value; return $this->renderTag('input', array('type' => 'hidden', 'name' => $name, 'value' => $value)). parent::render('autocomplete_'.$name, $visibleValue, $attributes, $errors). sprintf(<<<EOF <script type="text/javascript"> jQuery(document).ready(function() { jQuery("#%s") .autocomplete('%s', jQuery.extend({}, { dataType: 'json', parse: function(data) { var parsed = []; for (key in data) { parsed[parsed.length] = { data: [ data[key], key ], value: data[key], result: data[key] }; } return parsed; } }, %s)) .result(function(event, data) { jQuery("#%s").val(data[1]); }); }); </script> EOF , $this->generateId('autocomplete_'.$name), $this->getOption('url'), $this->getOption('config'), $this->generateId($name) ); }
Devrais je l'etendre pour le customiser ?
Partager