1

我什至不知道这个问题用什么标题。我从网络编程开始,我什至不知道我应该使用什么技术来做到这一点。

我在 symfony2 中有一个包含教义的数据库。这个数据库有画廊,每个画廊都有图像(两个表 OneToMany 关系)。

我将一组画廊传递给一个树枝模板,我在其中选择显示它们,因此我可以选择一个并将更多图像添加到画廊,添加新画廊或使用提交按钮删除它们。

现在正在使用此模板:

<select class="listGalleries" id="listGalleries" name='id' size="10">
{% for gallery in galleries %}
    <option value="{{gallery.id}}" >{{gallery.name}}</option>
{% endfor %}
</select>

那进入表格内部。

现在,我想做的是每次单击选择的一项时,在同一网页中显示所选画廊的所有图像。

我不知道我应该使用哪种技术。我可以用树枝做吗?我必须学习ajax吗?我想我必须去数据库读取属于该画廊的图片数据,但我不知道该怎么做,或者 symfony2 是否为我提供了更好的解决方案。

每一个建议都将不胜感激。

4

1 回答 1

0

“动态地”不能在 twig 中完成,因为在渲染后无法更改输出。

在我看来,您可以通过两种方式进行操作:

使用 twig 在画廊中循环并输出它们,然后在更改选项时使用一些 javascript(如引导选项卡)来显示每个画廊。在引导程序中你会这样做(假设画廊->图像关系在$画廊->图像中):

<div class="tab-content">
    {% for gallery in galleries %}
        <div class="tab-pane active" id="gallery{{ gallery.id }}">
             {% for image in gallery.images %}
                 <img src="{{ image.url }}" class="img-polaroid">
             {% endfor %}
        </div>
    {% endfor %}
</div>

现在使用 javascript 之类的

$("select#listGalleries").change(function () {
    $("select option:selected").each(function () {
        $("#gallery" + $(this).attr('value')).tab('show');
    });
})

否则,您可以在从中选择画廊后使用 ajax 返回画廊图像,并将画廊图像呈现在页面上的某个位置。这可以通过两种方式完成,在 symfony 中渲染 html,然后使用 javascript 将输出放在页面中,或者只返回一个 json(使用类似的东西并在 javascript 中创建 html(我个人使用了很多pure)。

于 2013-07-12T07:52:09.353 回答