ColdFusion - подход для таблицы данных запроса и действий CRUD

Мой вопрос больше ориентирован на подход, чем на программирование или ошибки.

У меня есть запрос, который выполняется и собирает набор данных. Затем я хочу использовать возвращаемые значения этого запроса для построения таблицы на странице, содержащей все значения. Наряду с этим мне нужно иметь некоторые действия с каждым значением, например:

my_val (edit) (delete)
my_cal (edit) (delete)

Где редактировать и удалять кнопки. Итак, кнопка редактирования у меня работает с onClick javascript, где я перенаправлен на другую страницу, но кнопка удаления мне нужна, чтобы сделать три вещи:

  1. подскажите юзер, ладно удалить? msg (для этого используется javascript (подтверждение возврата...).
  2. выполнить запрос на удаление
  3. обновить страницу (самостоятельно)

Есть ли подходящая модель для этого? Легче ли вызывать две встроенные команды javascript? Использовать функции JavaScript? Может быть, функция ColdFusion?

любые указатели были бы полезны! Благодарю.

4 ответа

Решение

Я думаю, что самый простой способ удалить это что-то вроде этого. Я предполагаю, что вы используете jQuery или какую-то другую библиотеку или получаете JavaScript.

YourPage.cfm
<cfif structKeyExists(URL, "Action") and URL.Action eq "delete">
    <cfququery>
       // delete the item using the id provided
    </cfquery>
</cfif>

<cfquery name="GetFresh">
    // get fresh info
</cfquery>

<cfloop query="GetFresh">
    Something <span class='DeleteLink' data-someid='#SomeID#'>delete</span> <br>
</cfloop>

<script type='text/javascript'>

    $DeleteLinks = $("span.DeleteLink");

    $DeleteLink.click(function() {
        var Confirm = confirm('Are you sure you want to delete?');
        if (Confirm == true) {
           var SomeID = $(this).data("someid");
           var URL = "YourPage.cfm?Action=delete&SomeID=" + SomeID;
           window.location = URL;
        }
    });
</script>

Я думаю, что вы близки к тому, что вы ищете.

Я бы сделал удаление, чтобы подтвердить в JS, а затем просто отправить запрос на другую страницу, которая выполняет процесс удаления, а затем отправить вашего пользователя обратно на исходную страницу (с обновлением).

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

Самый простой и быстрый способ - просто иметь обработчик onclick, который возвращает true/false в зависимости от выбора пользователя.

    <a href="delete.cfm?id=1" onclick="return confirm('Are you sure you want to delete his?')">Delete</a> 

Есть, конечно, гораздо более элегантные способы сделать это, но вышеупомянутое является основным и работает.

Это то, что я использую:

!function($, window, undefined) {
    var document = window.document;
    $(document).delegate('input:submit[name="Delete"][value="Delete"]','click',function() {
        return window.confirm(this.title || 'Delete this record?');
    });
}(jQuery, window);
Другие вопросы по тегам