Javascript 如何从YiBooster中的TbSelect2小部件检索POST数据?

Javascript 如何从YiBooster中的TbSelect2小部件检索POST数据?,javascript,php,ajax,forms,yii,Javascript,Php,Ajax,Forms,Yii,我正在为Yiibooster使用TBselect2小部件。我的看法是: $this->widget( 'bootstrap.widgets.TbSelect2', array( 'name' => 'cat_names', 'data' => Category::getRecipe(), 'htmlOptions' => array( '

我正在为Yiibooster使用TBselect2小部件。我的看法是:

$this->widget(
        'bootstrap.widgets.TbSelect2',
        array(
            'name' => 'cat_names',
            'data' => Category::getRecipe(),
            'htmlOptions' => array(
                'multiple' => 'multiple',
                'class' => 'span3'
            )
        )
        );
渲染输出生成类似“字段”的自动完成输入,但当我检查“输入字段外观类似”框时,它不是一个输入字段,而是一个包含所有选定项的UL列表的div标记

在从“自动完成”框中选择所需的值后,我必须发布表单,但由于TBSelect2呈现的HTML不是输入字段,我如何获得“自动完成TBSelect2”小部件生成的值,因为它不是表单字段

注意:这是一个包含多个html元素的长表单,所以我不想使用Ajax提交表单


有什么帮助吗?

如果您在浏览器中使用开发人员工具,您将看到有一个输入框和一个选择框。您的代码应该如下所示:

<div class="select2-container" id="s2id_options" style="width: 100%;">
    <a href="javascript:void(0)" onclick="return false;" class="select2-choice select2-default" tabindex="-1">
        <span class="select2-chosen">Select or start typing name.</span>
        <abbr class="select2-search-choice-close"></abbr>
        <span class="select2-arrow"><b></b></span>
    </a>
    <input class="select2-focusser select2-offscreen" type="text" id="s2id_autogen2">
</div>
<select name="cat_names" id="cat_names" tabindex="-1" class="select2-offscreen">
    //Your options
</select>

//你的选择

POST时,选择框
cat_names
将自动包含正确的值。因此,如果您查看
$\u POST['cat\u names']
,它应该具有您在Select2输入中选择的值。

您是否尝试填写该字段,提交整个表单并查看,请求中是否有相应的值?因为当我尝试时,当我选择值时,它将进入隐藏输入

不过,根据

只要用户更改原始元素的值,就会在原始元素上触发更改事件


因此,当用户选择一个值时,将出现一个事件,您可以使用该事件执行任何您想执行的操作。

如果您检查元素,您应该在输入框下方看到它。感谢您的回复。现在我可以在action方法中获取值,但它没有显示正确的值,比如在autocomplete框中选择3项。在$_POST['cat_names']中,我得到了3个整数。原因是什么?这些可能是
选项中的
值。例如,查看您的
内部。每个选项应如下所示:
这是我显示的内容
它发送
属性中的内容,就像任何其他选择框一样。