twitter-bootstrap - 如何重新加载引导模式(不是整个页面)?
问题描述
我的模态从BD获取数据,但问题是当客户端修改数据并关闭时,当它再次打开时,模态显示客户端修改的数据。发生这种情况是因为模式只是在页面加载时获取数据。我希望每次客户端单击以显示模态时模态都获取数据。就像重新加载模态一样。我怎么能那样做?
解决方案
第一种方法是使用我们想要避免的页面重新加载,第二种方法是使用 ajax。例如,您有一个带有用户名列表(用于显示)、输入字段、提交和取消按钮的简单表单的模式。
假设输入字段是用户名。因此,当客户端打开模式时,会发送 ajax 请求。您等待响应并将其作为列表呈现在模式中。
用户输入新的用户名并提交表单。模态关闭。如果再次打开模态,则发送另一个请求,成功后首先销毁旧列表,然后使用 ajax 响应呈现新列表,然后就可以了。这是一个粗略的例子:
模态- 类似...
<div id="userName" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">User names</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<ul id="result">
<li>userName1</li>
<li>userName2</li>
<li>userName3</li>
</ul>
<p>input field goes here.</p>
<form id="userNameForm" action="https://farfaraway/process" method="POST">
<input class="form-group" type="text" name="userName">
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="submit" form="userNameForm" class="btn btn-primary">Submit</button>
</div>
</div>
</div>
</div>
<button class="btn btn-success" id="openModal">Inser username</button>
JQuery类似:
$('#openModal').on('click',function(){
openUserNameModal();
});
function openUserNameModal() {
var ueserName = $('userName').val();
//ajax request
$.ajax({
url: "https://farfaraway/process",
method: "post",
data:{"userName": userName},
success: function(result){
if(result){
//destroy result list items with something like
$('#result').html('');
//render result embeded in html with something like
$('#result').html( /*your html*/ );
//open modal
$('#userName').modal('show');
}
}});
}
或者,如果您只想删除输入字段,您可以使用类似这样的内容
$('#openModal').on('click',function(){
$('#userNameForm input').val('');
$('#userName').modal('show');
});
这当然是一个粗略的例子,只是为了让你继续前进。希望它会有所帮助
推荐阅读
- php - 一个适用于多个数据库的 laravel 应用程序
- git - Git 在 rebase 后将 100 个来自其他分支的提交添加到我的分支中
- sql-server - 用于 MS SQL 的 pandas to_sql
- model-view-controller - _Layout.cshtml 可以有控制器吗
- java - JavaFX、文本字段、事件处理程序
- ms-access - 传递 RecordCount 属性时 MsgBox 不出现
- python - 在txt文件中制作列表,用于注册和登录系统
- reactjs - 从 onClick 调用函数的正确方法是什么,以免触发错误?
- php - 在 PHP 中获取服务器屏幕分辨率
- java - Java android停止服务