symfony中的依赖性下拉列表

时间:2016-05-20 14:37:00

标签: php jquery symfony

我一直在尝试在symfony中创建一个依赖的下拉列表,我在symfony文档中看到this帖子,然后我跟着它,唯一认为我在这里不理解:

$formModifier = function (FormInterface $form, Sport $sport = null) {
        $positions = null === $sport ? array() : $sport->getAvailablePositions();

        $form->add('position', EntityType::class, array(
            'class'       => 'AppBundle:Position',
            'placeholder' => '',
            'choices'     => $positions,
        ));
    };

应该在哪里定义getAvailablePositions?它会是什么样子?我真的迷路了,已经有一段时间了。我将衷心感谢您的帮助。提前谢谢。

顺便说一下。通过依赖下拉我的意思就像在symfony文档中你有两个下拉菜单,一个有体育,另一个有位置,然后你选择足球,之后第二个填充了守门员,防守,攻击等...... / p>

编辑:

这是我的javascript

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $("#sport").change(function(){
            var data = {
                option_id: $(this).val()
            };

            $.ajax({
                type: 'POST',
                url: '{{ path("positions") }}',
                data: data,
                success: function(data) {
                    var $position_select = $('#positions');

                    $position_select.html('<option>positions</option>');

                    for (var i=0, total = data.length; i < total; i++) {
                        $position_select.append('<option value="' + data[i].id + '">' + data[i].name + '</option>');
                    }
                    $position_select.html('');
                    $.each(data, function(k, v) {
                        $position_select.append('<option value="' + v + '">' + k + '</option>');
                    });
                }
            });
        });
    });
</script>

1 个答案:

答案 0 :(得分:0)

可以使用事件订阅者完成。这里非常好的教程http://showmethecode.es/php/symfony/symfony2-4-dependent-forms/