php - 如何在不重新加载页面的情况下进行实时
问题描述
你好如何使ajax实时?当有人在其他平台插入数据时,我想让我的代码实时显示数据自动显示而无需重新加载页面,这可能吗?在不重新加载页面的情况下获取所有新数据?并提前感谢你们希望你们帮助我我使用 ajax 和 jquery 和 codeigniter 框架
<script type="text/javascript" language="javascript">
$(document).ready(function() {
function fetch_data() {
$.ajax({
url: "http://localhost/codeigniter/api/fetchUserData",
method: "POST",
success: function(data) {
let output = "";
JSON.parse(data).map((user) => {
output = output + `
<tr>
<td>${user.first_name}</td>
<td>${user.last_name}</td>
<td><button class="edit" id="${user.id}">Edit</button></td>
<td><button class="delete" id="${user.id}">delete</button></td>
</tr>`
})
$('tbody').html(output);
}
});
}
fetch_data();
$('#add_button').click(function() {
$('#user_form')[0].reset();
$('.modal-title').text("Add User");
$('#action').val('Add');
$('#data_action').val("Insert");
$('#userModal').modal('show');
});
$(document).on('submit', '#user_form', function(event) {
event.preventDefault();
const action = $("#data_action").val();
console.log("Action: ", action)
$.ajax({
url: `http://localhost/codeigniter/api/${action === "Insert" ? "insert" : "updateUser"}`,
method: "POST",
data: $(this).serialize(),
dataType: "json",
success: function(data) {
if (data.success) {
$('#user_form')[0].reset();
$('#userModal').modal('hide');
fetch_data();
if ($('#data_action').val() == "Insert") {
$('#success_message').html('<div class="alert alert-success">Data Inserted</div>');
}
}
if (data.error) {
$('#first_name_error').html(data.first_name_error);
$('#last_name_error').html(data.last_name_error);
}
}
})
});
$(document).on('click', '.edit', function() {
var user_id = $(this).attr('id');
console.log("User Id:", user_id)
$.ajax({
url: "http://localhost/codeigniter/api/fetch_single",
method: "POST",
data: {
id: user_id
},
dataType: "json",
success: function(data) {
$('#userModal').modal('show');
$('#first_name').val(data.first_name);
$('#last_name').val(data.last_name);
$('.modal-title').text('Edit User');
$('#user_id').val(user_id);
$('#action').val('Edit');
$('#data_action').val('Edit');
}
})
});
$(document).on('click', '.delete', function() {
var user_id = $(this).attr('id');
if (confirm("Are you sure you want to delete this?")) {
$.ajax({
url: "http://localhost/codeigniter/api/delete",
method: "POST",
data: {
id: user_id
},
dataType: "JSON",
success: function(data) {
if (data.success) {
$('#success_message').html('<div class="alert alert-success">Data Deleted</div>');
fetch_data();
}
}
})
}
});
});
</script>
<html>
<head>
<title>CURD REST API in Codeigniter</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<br />
<h3 align="center">Create CRUD REST API in Codeigniter - 4</h3>
<br />
<div class="panel panel-default">
<div class="panel-heading">
<div class="row">
<div class="col-md-6">
<h3 class="panel-title">CRUD REST API in Codeigniter</h3>
</div>
<div class="col-md-6" align="right">
<button type="button" id="add_button" class="btn btn-info btn-xs">Add</button>
</div>
</div>
</div>
<div class="panel-body">
<span id="success_message"></span>
<!-- <button id="refreshBtn">Refresh</button> -->
<table class="table table-bordered table-striped" id="refreshTbl">
<thead>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th colspan="2">Acion</th>
<!-- <th>Delete</th> -->
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
</body>
</html>
<div id="userModal" class="modal fade">
<div class="modal-dialog">
<form method="post" id="user_form">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Add User</h4>
</div>
<div class="modal-body">
<label>Enter First Name</label>
<input type="text" name="first_name" id="first_name" class="form-control" />
<span id="first_name_error" class="text-danger"></span>
<br />
<label>Enter Last Name</label>
<input type="text" name="last_name" id="last_name" class="form-control" />
<span id="last_name_error" class="text-danger"></span>
<br />
</div>
<div class="modal-footer">
<input type="hidden" name="id" id="user_id" />
<input type="hidden" name="data_action" id="data_action" value="Insert" />
<input type="submit" name="action" id="action" class="btn btn-success" value="Add" />
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</form>
</div>
</div>
解决方案
推荐阅读
- python - 即使对于浅层 CNN,pytorch 的运行速度也比 tensorflow 慢得多
- c# - 如何解析两种不同的 JSON 格式
- sql - 将不相关子查询重写为相关子查询
- r - 从ggplot2中的命名列表为气泡图分配自定义颜色
- recaptcha - Recaptcha v3 问题 - performance.now 不是一个函数
- android - NetworkAgentInfo [Ethernet () - 100] 验证失败 - 在模拟器上
- c# - 获取 DropDownMenu 的 SourceControl
- android-studio - YoutubePlayer 初始化失败
- python - Pandas - groupby 连接 2 列
- arangodb - ArangoDB 中图表中集合的一致性是否得到保证?