sfWidgetFormJQueryAutocompleter:如何检索所选元素的键?
我有一个小部件:sfWidgetFormJQueryAutocompleter:如何检索所选元素的键?,jquery,symfony1,Jquery,Symfony1,我有一个小部件: $this->widgetSchema['user'] = new sfWidgetFormChoice(array( 'choices' => array(), 'renderer_class' => 'sfWidgetFormJQueryAutocompleter', 'renderer_options' => array('url' => 'autocomplete', 'config' => '{
$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中的响应”选项卡):
然后,我在自动完成输入中以这种方式选择两个名称:
[约翰,彼得]
提交表单时,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, '
那么,我应该如何检索用户的id呢
sf 1.4
Javier好的,现在我了解了这个小部件的工作原理。当你创建这种小部件时 对于widget,它实际上创建了两个字段:autocomplete\u my\u字段( 显示的字段以及插入数据的位置( 数组元素)和my_字段(隐藏字段,其中包含键) 插入) 当您仅插入一个元素,但 插入多个元素,这些元素的键将被覆盖 (第二个元素的id覆盖第一个元素的id, 第三个元素的id覆盖第二个元素的id 一个,…),所以你不能检索所有的。所以我认为这是一个bug 编辑: 可能此代码段有用。在该代码段中,tags_list不是一个随意的名称,而是由symfony生成的字段的名称,该字段显示关系另一端的元素。这样,您将覆盖它
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, '