jquery - 模板文字为空
问题描述
我在不同的 jquery 函数中有一些模板文字。其中一些正在工作。但是这个块没有执行。
function viewUserDetails(data) { // gets integer {1,2,3,...}
let x = ``; // ""
let y = ``; // ""
$.ajax({
type : "GET",
url : 'http://localhost/bugs_javascript/api/public/getSingleUser.php',
data : {
"id" : data // gets value {1,2,3,...}
},
dataType : 'json',
contentType : 'application/json',
success: function (e) {
console.log("success: "+e); // logs the returned JSON object
x += `<label for="title">Full Name</label>
<input type="text" class="form-control"
id="updateUserName" oninput="checkName('update')"
value="${e.name}">
<span id="uNameMsg"></span>
<br>
<label for="title">Unique ID</label>
<input type="textarea" class="form-control" id="updateUserUnique" rows="5"
value="${e.nick_name}"
oninput="checkUnique('update', ${e.nick_name})">
<span id="uUniqueMsg"></span>
<br>
<label for="title">Email</label>
<input type="text" class="form-control"
id="updateUserEmail"
value="${e.email}"
oninput="checkEmail('update', ${e.email})">
<span id="uEmailMsg"></span>
<br>
<button class="btn btn-success"
id="editUserFButtton"
onclick="updateUser(${e.id})">Update
Record</button>
<span id="updateUserBtnMsg"></span>`; // x = ""
y = `User Registered on: ${e.registration_date}`; // y = ""
},
error : function (e) {
console.log("error: "+e);
}
});
$("#modalFlashContent").append(x); // "" null
$("#modalFlashHeader").text(y); // "" null
} // Not working. Some prooblem
当 AJAX 请求发生时,这应该在 x 和 y 变量中提供一个 HTML 块。但它给出了null。
解决方案
在函数的底部,x 和 y 将为空,因为您的 ajax 调用的成功将在您分配 x 和 y 之后返回。你需要把
$("#modalFlashContent").append(x);
$("#modalFlashHeader").text(y);
在成功调用的底部。
推荐阅读
- javascript - 如何从对象列表中过滤掉一个对象?
- reactjs - 为什么使用像 Zusand 组件这样的状态管理器仍然会重新渲染?
- php - PHP学术问题:内部计算
- html - 位置固定或粘到仅在父 div 内滚动
- design-patterns - Java 寻找正确的模式
- python-3.x - 使用 asyncio 使 zeromq 客户端服务器并发
- git - 更新 Moodle 时出现“git pull”致命错误
- reactjs - 如何测试我的输入是否具有 ref 属性?
- php - 在 Laravel 8 中放置逻辑而不是控制器的位置
- c# - 强制一个异步方法按需延迟调用,并在前一个结果过期时再次调用