У меня есть этот виджет:
$this->widgetSchema['user'] = new sfWidgetFormChoice(array(
'choices' => array(),
'renderer_class' => 'sfWidgetFormJQueryAutocompleter',
'renderer_options' => array('url' => 'autocomplete', 'config' => '{ multiple:true }'),
));
И это функция автозаполнения:
public function executeAutocomplete($request)
{
$this->getResponse()->setContentType('application/json');
$q = "%" . $request->getParameter('q') . "%";
$limit = $request->getParameter('limit');
//Criteria code
return $this->renderText(json_encode($cli));
}
, которая возвращает эту вкладку («Ответ» в Firebug):
{"17":"John","18":"Ann"} //the numbers are the values in the id field.
Затем я выбираю оба имени в автозаполнении таким образом:
[Джон, Питер]
Когда я отправляюФорма, метод getPostParameters () возвращает это:
array
'example' =>
array
'id' => string '' (length=0)
'_csrf_token' => string '388774046d0f5c8b4a3f114ddb15af7b' (length=32)
'user' => string '18' (length=2)
'autocomplete_example' =>
array
'user' => string 'John, Ann, '
Итак, что мне делать, чтобы получить идентификаторы пользователей?
sf 1.4.
Хавьер