2

Symfony2 アプリで que GenemuFormBundle を使用しようとしています。以下のリンクの手順に従いました。

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

その後、正しくインストールされたようです。そのウェブサイトの下部には、次のように書かれています。

GenemuFormBundle を使用していますが、機能しないことがわかりました。form_javascript や form_stylesheet を忘れているかもしれません。

原則は、javascript、スタイルシート、および html を分離することです。これにより、Web ページの統合が向上します。

テンプレートのサンプル フォーム ビューを表示します。

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

2

同じ問題がありました。

次の手順で動作します。

select2 assets を必ず含めてください。または、select2.css と select2.js を Web フォルダーに配置します。

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

さらに、次のように Select2 サンプル コードをフォーム twig ファイルに追加する必要があります。

<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 に答える