ajax - 使用 AJAX 获取数据并将其保存为变量
问题描述
我对 AJAX 完全陌生,我似乎不知道搜索我正在寻找的内容的最佳方法。所以想在这里解释一下。我有一张列出我的用户的表格。我希望能够在不刷新的情况下编辑表格的任何行。因此,我为每一行添加了一个按钮,通过单击您可以在 Bootstrap 模式的帮助下编辑该用户。
有这个按钮可以启动操作:
<span class="updateInfo" user-id="<?php echo $users_array['id']; ?>" data-target=".editInfo" data-toggle="modal"><i class="fa fa-pencil" ></i></span>
$users_array是之前从数据库中的表中获取的数组。该表还具有“id、name、email、phone”作为列。
所以,我的 JS 代码中基本上是这样的:
jQuery(document).ready(function() {
$('.updateInfo').click(function(){
var userID = $(this).attr('user-id');
$.ajax({
url: "edit.php",
method: "POST",
dataType: 'json',
data: {
selected_user_id: userID,
},
success: function(data) {
// I don't know what to do here :(
}
});
});
});
edit.php文件中包含的代码如下:
$user_id=$_POST['selected_user_id'];
$get_user=mysql_query("SELECT * FROM users WHERE id='$user_id'");
$user_array=mysql_fetch_row($get_user);
echo json_encode($user_array);
我没有放建立数据库连接之类的代码,因为它们是基础并且可以正常工作。
我这里有几个问题:
- 我不知道到目前为止我编写代码的方式是否正确。
- 我应该如何获得这些结果并将它们保存为变量以供以后使用。
- 我不知道是否可以将新创建的变量用作原始文件中存在的模式中的占位符或预定义值。
PS:模式有一个简单的表单,只需输入姓名、电子邮件和电话号码:
<div class="modal fade editInfo" tabindex="-1" role="dialog" aria-labelledby="myNote" data-backdrop="static" aria-hidden="true">
<form method="POST">
<input name="fullname" value="" />
<input name="email" value="" />
<input name="phone" value="" />
</form>
</div>
解决方案
- 为每个 html 元素设置 ID
jQuery(document).ready(function() {
$("#fullname").val("USer One ");
$("#email").val("User@gmail.com");
$("#phone").val("987654");
$('.updateInfo').click(function(){
var userID = $(this).attr('user-id');
$.ajax({
url: "edit.php",
method: "POST",
dataType: 'json',
data: {
selected_user_id: userID,
},
success: function(data) {
console.log(data);
$("#fullname").val(data.fullname);
$("#email").val(data.email);
$("#phone").val(data.phone);
}
});
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<div class="modal fade editInfo" tabindex="-1" role="dialog" aria-abelledby="myNote" data-backdrop="static" aria-hidden="true">
<form method="POST"> <input id="fullname" name="fullname" value="" /><input id="email" name="email" value="" /> <input id="phone" name="phone" value="" /> </form>
</div>
然后像这样绑定:
推荐阅读
- javascript - Cordova 插件连接到外部数据库?(不是微软)
- python - AirflowException:尝试在 Airflow 中运行 HTTP 运算符时未定义 conn_id `http_default` 错误
- android - 在 EditText 中搜索 RecyclerView 时出现 NullPointException
- c# - 你如何引用另一个类的变量?
- c# - 在 .NET Core 中实现 Post/Redirect/Get Pattern 的正确方法是什么?
- c# - 为什么 SevenZipSharp 在 zip 中创建一个空文件夹?
- oracle - Maximo:ASSET 表有重复的索引?
- c# - 获取活动表单
- sap - 确定字段中允许的字符数?
- c - 打开、读取和打印二维数组!(我的代码有什么问题?)