json - 如何将 SQL 值发布到复选框中
问题描述
首先,我的问题可能是这个问题的重复问题:Need html checkbox to be checked by mysql result但我不明白答案 - 操作没有发布任何代码,我不知道如何适应建议将代码放入我的案例中,因为我需要从 SQL (?) 中获取值。
这里是所有数据:我有一个带有复选框的 HTML 表单,它在提交表单时将选中的值存储为“1”和未选中的“0”到 SQL 数据库中。现在我想让它(在页面加载时)从数据库中提取数据并在同一用户返回页面时填充表单的复选框。(我知道我的代码在某些地方有问题,我仍然需要解决这个项目的很多问题)现在,我要解决的是让 SQL 将结果输出到现有的 HTML 复选框(而不是创建新的复选框或新的 HTML 表单)。
注意:我的 HTML 表单和我的 php 表单位于两个单独的文件中,它们无法合并(我不知道这是否会有所不同)。
默认情况下,表单中的所有复选框都是空的。我在我的表单中使用 Ajax,以便在页面加载时将用户 ID 传递给一个 php 文件,然后运行 SQL 查询以拉出“1”(如果应选中复选框),如果应不选中则拉出“0”。
这是与案例相关的 HTML 片段:
<input type=text id="userid" name="userid" value="">
</div>
<div class="grid">
<div>
<div class="grid-item">
<img src="image.png" alt="">
</div>
<div class="grid-item-title">
<h2>Title</h2>
</div>
<div class="grid-item">
<p>
<input type="hidden" name="owns[item1]" value="0"><input type="checkbox" onclick="this.previousSibling.value=1-this.previousSibling.value">I own this<br>
</p>
</div>
</div>
<div>
<div class="grid-item">
<img src="image.png" alt="">
</div>
<div class="grid-item-title">
<h2>Title 2</h2>
</div>
<div class="grid-item">
<p>
<input type="hidden" name="owns[item2]" value="0"><input type="checkbox" onclick="this.previousSibling.value=1-this.previousSibling.value">I own this<br>
</p>
</div>
</div>
这是我正在使用的 Ajax 代码:
document.addEventListener("DOMContentLoaded", function myFunction() {
var x = 3 //replace with user ID
$.ajax({
url: 'libraryRequest.php',
method: "post",
data: {"userid": x }, // sends id to PHP
dataType: "html",
async: false,
success: function(data){
$('#content').html(data); // currently this overwrites all HTML on the page...
},
error: function (xhr, ajaxOptions, thrownError) {
var errorMsg = 'Ajax request failed: ' + xhr.responseText;
$('#content').html(errorMsg); // currently this overwrites all HTML on the page...
}
})
});
这是到目前为止我设法整理的 PHP 代码:
$userid = 0;
$userid = $_POST['userid'];
if ($userid != 0) { //only execute if there is a user id
$userquery = "SELECT * FROM libraryG WHERE userid =$userid"; //find if userid exists
$result = mysqli_query($con, $userquery);
if(mysqli_num_rows($result)>0) { //if user id exists run this code to pull the data
$sqlupdate = "SELECT * FROM libraryG WHERE userid = $userid";
mysqli_query($con, $sqlupdate);
if ($result->num_rows > 0) {
while($row = $result->fetch_row()) {
print json_encode($row); // edited
}
} //if user id doesn't exist in db or there is no user id - do nothing
}
每个复选框值都存储在 SQL 中的单独列中。
我已经研究了好几个小时了,但在大多数情况下,我发现的类似问题正在解释我从未使用过的 C# 或 ASP 的解决方案,并且在我试图避免那些我不知道的事情上有点新是另一种方法。
解决方案
推荐阅读
- php - 根据下拉选择格式化用户文本
- python - Flask render_template 无法显示引用的模板
- selenium - 如何从机器人框架中的命令行参数获取测试用例传递中的变量
- javascript - 如何确定所选文本中是否有换行符
- flutter - 自定义 IBM Watson Visual Recognition 服务与 Flutter/Dart 的集成
- angular - 上传到 AngularFireStorage 后如何使用 getDownloadUrl() 检索下载 URL
- apache-kafka - kafka 客户端可以连接到在 docker 容器中运行的 kafka 服务器
- javascript - 如果 localstorage access_token 未定义,如何重定向回登录页面
- monetdb - 是否可以使用 monetdb/e 打开常规的 monetdb 数据库目录?
- .net - 如何注入asp.net mvc区域