2

我正在尝试在我的 Symfony2 应用程序中使用 que GenemuFormBundle。我按照以下链接中的步骤操作:

http://symfohub.com/repo/GenemuFormBundle/documentation

之后,它似乎已正确安装。在该网站的底部,它说:

您使用了 GenemuFormBundle,但您发现它不起作用!也许你忘记了 form_javascript 或 form_stylesheet。

原理是将javascript、样式表和html分开。这允许更好地集成网页。

查看模板示例表单视图:

https://github.com/genemu/GenemuFormBundle/blob/master/Resources/doc/template.md

我将该代码复制到呈现我的表单的模板中。然后我下载了 jquery、jquery-ui 和 jquery-tokeninput,js 和 css 文件,因为看起来它们是实现 Select2 功能所需的文件,我将它们放入各自的文件夹中,并正确加载它们(在至少 Symfony2 没有抱怨找不到它们)。

我还将以下代码放入我的实体中,使用genemu_jqueryselect2_choice 而不是默认代码:

->add('listofitems', 'genemu_jqueryselect2_choice',
    array('choices' => array('item1' => 'item1',
                             'item2' => 'item2',
                             'item3' => 'item3'),
          'required'  => false ))

表单加载并正常工作,但我没有得到这样的选择框。

但相反,我得到了老式的选择框。如果我使用genemu_jqueryautocompleter_entity 选项,自动完成功能也不起作用。我做错了什么?

4

4 回答 4

4

在树枝模板中添加以下内容也很重要:

{% block stylesheets %}
    {{ form_stylesheet(form) }}
{% endblock %}

{% block javascripts %}
    {{ form_javascript(form) }}
{% endblock %}
于 2013-06-27T15:43:59.707 回答
2

有过同样的问题。

通过这些步骤,它可以工作:

确保包括 select2 资产。或者将 select2.css 和 select2.js 放在您的 web 文件夹中。

<script src="{{ asset('js/select2.js') }}" type="text/javascript"></script>

此外,您应该在表单树枝文件中添加您的 Select2 示例代码,例如:

<script>
$(document).ready(function() { 
    $("#el4").val(["AL","AZ"]).select2();
    $("#el4").click(function() { $("#el4").select2(); });
    $("#wait_tags_destroy").click(function() { $("#wait_").select2("destroy"); });
});

</script>

至少更改部分 ID 名称中的 #el4

于 2013-03-21T21:53:06.310 回答
1

最好安装fanforfun/select2-bundle,然后在模板中使用 Assetic 功能:

{% block stylesheets %}

    {{ parent() }}

    {% stylesheets filter='cssrewrite' output='resources/css/*.css' 'bundles/fanforfunselect2/select2.css' %}
        <link href="{{ asset_url }}" rel="stylesheet" type="text/css" />
    {% endstylesheets %}

    {% if form is defined %}
        {{ form_stylesheet(form) }}
    {% endif %}

{% endblock %}

{% block javascripts %}

    {{ parent() }}

    {% javascripts output='resources/js/*.js' '@FanforfunSelect2Bundle/Resources/public/select2.js' %}
        <script type="text/javascript" src="{{ asset_url }}"></script>
    {% endjavascripts %}

    {% if form is defined %}
        {{ form_javascript(form) }}
    {% endif %}

{% endblock %}
于 2013-07-05T08:06:37.000 回答
0

我发现只需加载 css 和 js 脚本,正如前面的答案所说,并将样式应用于所有选择框,它就可以工作:

<link href="{{ asset('select2/select2.css') }}" rel="stylesheet">
<script src="{{ asset('js/select2.js') }}"></script>
<script>
$(document).ready(function() {
    $("select").select2();
});
</script>
于 2013-04-13T09:02:32.730 回答