Получите доступ к объекту определенной строки в таблице Bootstrap и перейдите в модальный

У меня есть таблица, в которой каждая строка является объектом и показывает определенные свойства. В каждой строке также есть кнопка, которая открывает модальное окно удаления, которое удалит объект в этой строке из базы данных. Модальный шаблон Twig имеет доступ к массиву отображаемых объектов, но мне нужен способ найти, какой объект искать в БД и удалять.

Вот код шаблона ветки для отображения данных.

{%  for announcement in announcements %}
    <tr>
        <th scope = "row">{{ announcement.content }}</th>
        <td>{{ announcement.isDisplayed() }}</td>
        <td style = "float:right;">
            <div>
                <button class = "btn btn-sm" data-toggle = "modal" data-target = "#announcementDeleteModal">
                         <span class = "fa fa-trash btn-link"></span>
                          Delete announcement
                </button>

Модальный шаблон, который также имеет акценты на массив announcements

<div class = "modal fade" id = "announcementDeleteModal" tabindex = "-1" role = "dialog"  aria-hidden = "true">
<div class = "modal-dialog" role = "document">
    <div class = "modal-content">
        <div class = "modal-header">
            <h5 class = "modal-title" id = "exampleModalLabel">
                <span class = "fa fa-cat"></span><div>Srsly delete that?</div>
            </h5>
        </div>
        <div class = "modal-body">
            {{ form_start(deleteForm) }}
            {{ form_end(deleteForm) }}
            <span class = "fa fa-cat"></span><div>Srsly delete that?</div>
            <button type = "button" class = "btn btn-secondary" data-dismiss = "modal" aria-label = "Close">
                Fine. Keep it.
            </button>
        </div>
    </div>
</div>

Вот код jQuery, который отправляет запрос ajax. Переменная id собирает правильные данные. Мне просто нужно получить к нему доступ через контроллер. Я пробовал $request->get('id') и $request->get('id'),

$('.action-button').click(function () {
        alert("ran");
        var id = $(this).data('id');
        alert(id);
        $.ajax({
            url:"/admin/announcements",
            method: "POST",
            cache: false,
            data: { id: id },
            success: function (html) {
                alert("success");
               // $(this).parent().parent().remove();

            }
        });
    });

У вас есть id для каждого announcement?

StaticBeagle 12.02.2019 00:38

Да и веточка имеет к нему доступ в файле

d1596 12.02.2019 01:05

Затем просто добавьте это как значение на кнопку?

DarkBee 12.02.2019 09:24

@DarkBee, как мне добавить значение? Поиск в Интернете кажется лучшим способом - использовать JavaScript? Я новичок в JS, есть ли документация?

d1596 12.02.2019 18:31
<button value = "{{ announcement.getId() }}">click</button> - что-то вроде этого
DarkBee 12.02.2019 19:43

@DarkBee Хорошо, поэтому я могу сохранить значение на стороне HTML. Сложность заключается в том, что эта кнопка отображает раскрывающийся список Bootstrap с кнопками delete и edit. Оба открывают модальное окно, в котором я затем использую переданный идентификатор в моем контроллере Symfony, чтобы либо отредактировать, либо удалить объявление с этим идентификатором. Я не могу понять, как получить доступ к данным идентификатора в моем контроллере

d1596 12.02.2019 20:29

см. обновленный код запроса ajax

d1596 12.02.2019 21:08
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
2
7
356
1

Ответы 1

На самом деле я не понимаю вопроса, но я предлагаю вам либо создать модальное окно для каждого элемента строки при рендеринге шаблона, либо написать собственный JS-скрипт и передать идентификатор объекта через атрибут данных и сохранить его в каком-то скрытом поле.

сохранить идентификатор объекта в атрибуте data-'' для кнопки?

d1596 12.02.2019 18:35

Это зависит от вашего решения, лично я бы сохранил его на кнопке, так будет проще справляться. Затем используйте события js, чтобы получить этот идентификатор и сохранить его в скрытом поле формы для последующих почтовых процедур.

vytsci 12.02.2019 18:42

Хорошо, я попробую это спасибо. Мой модальный шаблон находится в отдельном файле. Можно ли отправить атрибут данных data-id в отдельный модальный файл или мне нужно их объединить?

d1596 12.02.2019 18:48

Всегда ищите документацию twig.symfony.com/doc/2.x/tags/include.html, которую вы можете использовать 'with'.

vytsci 12.02.2019 19:00

Другие вопросы по теме