在创建一个button按钮,怎么才能让他绑定数据库,根据数据库状态而改变(按钮为打开的时候,数据库状态为0,按钮为打开状态,数据库状态为1,按钮为关闭状态)
思路很简单:
打开-0;关闭-1
在按钮上注册点击事件监听器
监听器向服务端发送ajax请求,告知按钮当前的开关状态
服务端接收到请求后,判断按钮当前的开关状态,若当前为“打开”,则将“关闭”的状态值 1 存入数据库,之后再将按钮要改变成的状态值及显示文本(数据格式类似:{"switchStatus":1,"content":"关闭"})输出给客户端即可。
客户端接收到服务端响应的数据后,就可以赋值给按钮了。
具体示例代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript" src="js/jquery-3.5.1.js">
</script>
<script>
$(function () {
// 给id为bt的元素注册点击事件监听器
$("#switchBt").click(function () {
// 通过jQuery以get方式发送ajax请求
$.get(
"switch.do",
{"switchStatus": $("#switchBt").val()},
// 请求成功会回调这个函数
function (data, desc) {
$("#switchBt").text(data.content);
$("#switchBt").val(data.switchStatus);
},
"json"
);
});
});
</script>
</head>
<body>
<button id="switchBt" name="switchStatus" value="0">打开</button>
</body>
</html>
后端业务处理代码:
req.setCharacterEncoding("utf-8");
resp.setContentType("text/json;charset=utf-8");
PrintWriter out = resp.getWriter();
int status = Integer.parseInt(req.getParameter("switchStatus"));
System.out.println("当前开关的状态值:" + status);
if (status == 0) {
// 这里你只要访问数据库存储开关的状态值即可,我这里就省略这步,直接输出到页面上
out.println("{\"switchStatus\":1,\"content\":\"关闭\"}");
out.close();
} else {
out.println("{\"switchStatus\":0,\"content\":\"打开\"}");
out.close();
}
你是想表达,如果数据库是关闭状态,就让按钮显示,否则就让按钮隐藏?不理解你说的按钮打开和关闭~
就是进入页面,页面有一个按钮(按钮没有隐藏,只是按钮上的字又打开变为关闭
),但是没有点击,按钮的状态是打开的(按钮上的字为打开)(数据库现在状态为0),点击以后按钮变为关闭(数据库里变为1)
有两种方式
一、每次进入页面都去读取button对应的数据库状态,然后根据对应的值刷新UI
二、动态监听数据库变化,通过监听数据库变化,在回调接口里面读取最新数据值,实现UI更新,这样就实现了绑定数据库(第二种应该是你想要的)
呢应该咋写? 写一个onclick,触发点击事件,然后调用ajax同步数据库状态吗?还是怎么办?
@简单,: 你这个需求只是要实现点击后切换状态的话,就不需要监听数据库变化。在onClick事件那里加个if判断读到是打开状态,就设置为关闭;else关闭的话,就设置为打开即可,逻辑里面修改数据库值和UI显示
难道是用的VB
Web程序还是桌面程序??
Web程序实现思路:
1、页面加载时从服务端读取数据库状态,根据数据库状态来设置button对应的状态即可。这个可以理解为初始化;
2、步骤1完成后,在页面上操作button时,button绑定onclick事件,当操作发生时把变更后的状态发到服务器端进行数据库存储(更新),同时button状态发生改变;
桌面程序实现思路:
1、程序运行后依然是初始化时从数据库读取状态值,调整显示即可;
2、窗口中操作了button,根据onclick来更新数据库的值即可。
以上错做即可实现