2012-12-05 50 views
2

我想在我的Symfony2應用程序中使用que GenemuFormBundle。我也跟着在下面的鏈接中的步驟:在Symfony2中使用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選項,則自動完成功能不起作用。我做錯了什麼?

+0

你有沒有做過[此頁上的第一步](https://github.com/genemu/GenemuFormBundle/blob/master/Resources/doc/jquery/select2/index.md)在您的應用程序配置中啓用它? – RobMasters

+0

如果您的意思是將代碼添加到app/config/config.yml,那麼是的。 –

回答

2

有過同樣的問題。

使用以下步驟:

確保包含select2資產。或者把你的web文件夾中的select2.css和select2.js。

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

此外,你應該在你的形式樹枝文件添加您的選擇二示例代碼,如:

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

</script> 

至少把#改成EL4在部分ID名稱

+0

它的工作原理,謝謝! –

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> 
4

同樣重要補充following到您的樹枝模板:

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

{% block javascripts %} 
    {{ form_javascript(form) }} 
{% endblock %} 
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 %}