javascript - 如何使用ajax在html中显示mySQL数据
问题描述
我通常做的是从存储库中获取数据并通过 addAttribute 将该数据传递给视图,如下所示:
@GetMapping("html_page")
public String dynamicPage(Model model){
List<MySqlDataDTO> mySqlDataDTO = mySqlRepository.findAllByName(name);
model.addAttribute("mySqlDataDTO", mySqlDataDTO);
return "html_page";
}
然后使用 thymeleaf 循环遍历数据并将其显示在表格中,如下所示:
<table id="table" >
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Fav</th>
</tr>
</thead>
<tbody >
<tr th:each="mySqlDataDTO : ${mySqlDataDTO}" >
<th th:text="${mySqlDataDTO.id}"></th>
<td th:text="${mySqlDataDTO.name}"></td>
<td th:text="${mySqlDataDTO.fav}"></td>
</tr>
</tbody>
</table>
这一切都很好,但是当用户最初将数据发送到数据库时出现问题,页面会刷新并强制用户到页面顶部,从而产生负面的用户体验。
我想出了如何使用 ajax 来解决刷新页面的问题,方法是让 post 请求首先通过 ajax,如下所示:
$(document).ready(function () {
$('#form').on('submit', function(e) {
e.preventDefault();
$.ajax({
url : $(this).attr('action') || window.location.pathname,
type: "POST",
data: $(this).serialize(),
success: function (data) {
},
error: function (jXHR, textStatus, errorThrown) {
alert(errorThrown);
}
});
});
});
通过将数据发送到数据库而不刷新页面可以正常工作,但问题是在将数据发送到数据库后检索数据。我不太明白如何检索数据并将其显示在表格中给用户,这是我到目前为止所拥有的,但似乎不起作用:
$(document).ready(function () {
$('#form').on('submit', function(e) {
e.preventDefault();
$.ajax({
url : $(this).attr('action') || window.location.pathname,
type: "GET",
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function (data) {
$('#table').empty();
$.each(data.items, function(item) {
alert(data.name);
});
},
error: function (jXHR, textStatus, errorThrown) {
alert(errorThrown);
}
});
});
});
我添加了一个警报只是为了将数据视为测试。基本上我想像往常一样通过我的存储库从数据库中获取数据,然后将该数据传递给视图以显示如下:
但是它应该再次使用 ajax get,所以只要用户点击提交,表就会刷新(而不是整个页面)并且表会反映数据库数据。
解决方案
推荐阅读
- python - 将文件名添加到新列 Python
- makefile - Makefile:如果字符串以其他字符串结尾
- c - Long double 变量在赋值时产生负数
- python - 如何在回调中获得批次中使用的确切训练示例?
- powershell - 获取特定的 AD 组成员,然后导出到 csv
- c# - 文件名非 utf-8 的解压缩未以正确的名称提取
- ios - Xamarin.Forms.Maps iOS 填充
- jquery - 为什么我的计数器值从未超过 1?
- c# - 获取 reCAPTCHA 的 JSON 响应时出现 SocketException 和 WebException
- python - 我的带有 *args 的函数仅重制第一个参数 python,但我需要全部重制