ColdFusion - подход для таблицы данных запроса и действий CRUD
Мой вопрос больше ориентирован на подход, чем на программирование или ошибки.
У меня есть запрос, который выполняется и собирает набор данных. Затем я хочу использовать возвращаемые значения этого запроса для построения таблицы на странице, содержащей все значения. Наряду с этим мне нужно иметь некоторые действия с каждым значением, например:
my_val (edit) (delete)
my_cal (edit) (delete)
Где редактировать и удалять кнопки. Итак, кнопка редактирования у меня работает с onClick javascript, где я перенаправлен на другую страницу, но кнопка удаления мне нужна, чтобы сделать три вещи:
- подскажите юзер, ладно удалить? msg (для этого используется javascript (подтверждение возврата...).
- выполнить запрос на удаление
- обновить страницу (самостоятельно)
Есть ли подходящая модель для этого? Легче ли вызывать две встроенные команды 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);