【发布时间】:2018-08-23 22:22:48
【问题描述】:
我一直在开发单页应用程序,用户可以在其中运行不同的进程。这将涉及添加新记录、更新现有记录以及在某些情况下删除记录。我的问题是在前端处理此过程的最佳方法是什么?我试图监控Stack-overflow 的工作方式以及他们如何处理这种情况。如果他们使用不同的url 或者他们使用提交的表单数据来决定应该在后端运行哪个进程,我仍然可以说 100% 我理解。这是一个小例子:
<div class="row">
<div class="form-group col-xs-12 col-sm-12 col-md-12 col-lg-12">
<button type="button" name="new_record" id="new_record">New</button>
</div>
</div>
<table>
<thead>
<tr>
<th>Name</th>
<th>Status</th>
<th>Edit</th>
</tr>
</thead>
<tbody>
<tr>
<td>New York</td>
<td>Active</td>
<td class="text-center">
<button class="record_edit">Edit</button>
</td>
</tr>
</tbody>
</table>
在上面的 HTML 中,您可以看到两个不同的按钮 New 和 Edit。出于测试目的,我只在表格中显示了一条记录。所以我想知道如何在 JQuery/JavaScript 和 Ajax 中处理这个问题。这是我的js代码示例:
$('#frmSave').on('submit', submitFrm);
function submitFrm(e){
var formData = frmObject.serialize();
$.ajax({
type: 'POST',
url: 'Components/Functions.cfc?method=saveData',
data: formData,
dataType: 'json'
}).done(function(obj){
if(obj.STATUS === 200){
// Successfully saved.
}else{
// Error!
}
}).fail(function(jqXHR, textStatus, errorThrown){
alert('Error: '+errorThrown);
});
}
您可以看到我为 New 和 Edit 两种情况调用了一个函数。在后端,我有两个不同的过程。一个用于插入,另一个用于更新。基于从用户传递的参数,这些参数将在后端决定。我怎么知道我可以使用data-attributes 并将该值附加到我的formData 和url 名称并发送到服务器。有人会说不靠谱。我后端的代码会根据表单数据中提交的参数进行插入或更新。我想知道现在这种情况有什么好方法。如何以专业的方式处理?如果有人有一个很好的例子,请告诉我。还有一件事,在我看来,我想将这两个进程保持在后端的同一个函数中,以防止一些代码冗余。
【问题讨论】:
-
我见过这种做法有多种方式。我看到其他人将他们的代码存储在数据库中并通过 ajax 调用它,并且我看到其他人基于该函数加载另一个 js 文件并将正文更改为该页面。也许您想采用更多 Angular 方法
-
id为
frmSave的dom在哪里 -
@Tim 你能举例说明它应该是什么样子吗?
-
@brk 我没有为此目的发布我的整个表单 html。
frmSave是表单 ID。 -
我想说,这种方法还不错。如果你真的想让这个专业,你可以使用框架。
标签: javascript jquery ajax