Как передать идентификатор по нажатию кнопки для начальной загрузки V3 в CouchCMS? - PullRequest
1 голос
/ 10 октября 2019

У меня есть список (отображается в табличном формате). Список состоит из названий различных отделов.

Появляется то же, что и ниже:

-------------------------------------------------------
Sr. No.      Department Name                Action
-------------------------------------------------------
1            Department A                EDIT | DELETE
2            Department B                EDIT | DELETE
3            Department C                EDIT | DELETE
4            Department D                EDIT | DELETE
5            Department E                EDIT | DELETE
-------------------------------------------------------

Теперь я пытаюсь открыть один модальный режим, когда нажата кнопка «EDIT» или «DELETE». В модальном режиме я хочу отобразить форму РЕДАКТИРОВАТЬ (для конкретного отдела) или УДАЛИТЬ форму (для конкретного отдела).

Обратите внимание: я использую CouchCMS , поэтому даже пользовательский PHPможет быть полезен код, который можно изменить в соответствии с CouchCMS Purview.

Я создал клонируемый шаблон с настраиваемыми маршрутами, используя CouchCMS. Тег помогает мне сгенерировать таблицу (как показано выше). Где в кнопках для редактирования и удаления также генерируются. Я могу легко предоставить кнопке идентификатор страницы, используя CouchCMS (если это поможет).

Я использую нативный код bootstrap, чтобы открыть модал Bootstrap v3. При этом для каждой нажатой кнопки открывается один модал, что избавляет меня от проблемы с памятью, с которой я могу столкнуться, если сгенерирую столько модалов, сколько строк в таблице.

Код для модального Bootstrap v3, которыйя имею в виду, доступно здесь .

В CouchCMS у нас есть форма редактирования (для редактирования данных, запрашиваемых из базы данных), где необходимо установить параметр page_id для редактирования этогоконкретный элемент данных. Мне нужно установить этот page_id. Но я не могу понять, как?

Код для создания списка таблиц:

<table class="table table-striped table-hover">
    <thead>
        <tr>
            <th>Sr. No.</th>
            <th>Name</th>
            <th>Actions</th>
        </tr>
    </thead>
    <tbody>
        <cms:pages masterpage='department/department.php' limit='10' paginate='1' show_future_entries='1'> 
        <tr>
            <td><cms:show absolute_count /></td>
            <td><cms:show k_page_title /></td>
            <td>
                <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-id="<cms:show k_page_id />">
                    EDIT
                </button>
                <button type="button" class="btn btn-danger" data-toggle="modal" data-target="#exampleModal" data-id="<cms:show k_page_id />">
                    DELETE
                </button>
            </td>
        </tr>
        </cms:pages>
    </tbody>
</table>

Код для открытия одного модального окна для каждой нажатой кнопки, кнопки РЕДАКТИРОВАТЬ или УДАЛИТЬ:

$('#exampleModal').on('show.bs.modal', function (event) {
    var button = $(event.relatedTarget) // Button that triggered the modal
    var page = button.data('id') // Extract info from data-* attributes
    // If necessary, you could initiate an AJAX request here (and then do the updating in a callback).
    var modal = $(this)
    modal.find('.modal-title').text('New message to ' + page)
    modal.find('.modal-body input').val(page)
})

Код для модального вида:

<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                <h4 class="modal-title" id="exampleModalLabel">New message</h4>
            </div>
            <div class="modal-body">
                <!-- Edit Form Content Here -->
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">CANCEL</button>
                <button type="button" class="btn btn-primary">SAVE</button>
            </div>
        </div>
    </div>
</div>

Форма редактирования в CouchCMS определяется следующим образом:

В этой форме мне нужно установить page_id = k_page_id,K_page_id доступен для кнопки в таблице под атрибутом data- * (data-id). Если только page-id может быть предоставлен для page_id, остальное можно перенести оттуда с помощью CouchCMS.

Я также открыт для возможности использования AJAX, если требуется. Но если это возможно без AJAX, все равно будет хорошо.

Любая помощь в этом отношении будет принята с благодарностью. Если требуется какое-либо разъяснение или пост-редактирование или требуются дополнительные материалы, я покажу, если кто-то укажет на недочёт в моем описании / коде.

Заранее спасибо сообществу.

...