首页 新闻 会员 周边 捐助

onclick事件怎么运用

0
悬赏园豆:50 [已解决问题] 解决于 2022-06-14 11:25

在创建一个button按钮,怎么才能让他绑定数据库,根据数据库状态而改变(按钮为打开的时候,数据库状态为0,按钮为打开状态,数据库状态为1,按钮为关闭状态)

简单,的主页 简单, | 初学一级 | 园豆:37
提问于:2022-06-08 14:59
< >
分享
最佳答案
0

思路很简单:
打开-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();
      }
收获园豆:50
liaowenxiong | 初学一级 |园豆:33 | 2022-06-11 19:21
其他回答(5)
0

你是想表达,如果数据库是关闭状态,就让按钮显示,否则就让按钮隐藏?不理解你说的按钮打开和关闭~

三人乐乐 | 园豆:4823 (老鸟四级) | 2022-06-08 15:41

就是进入页面,页面有一个按钮(按钮没有隐藏,只是按钮上的字又打开变为关闭
),但是没有点击,按钮的状态是打开的(按钮上的字为打开)(数据库现在状态为0),点击以后按钮变为关闭(数据库里变为1)

支持(0) 反对(0) 简单, | 园豆:37 (初学一级) | 2022-06-08 15:48
0

有两种方式
一、每次进入页面都去读取button对应的数据库状态,然后根据对应的值刷新UI
二、动态监听数据库变化,通过监听数据库变化,在回调接口里面读取最新数据值,实现UI更新,这样就实现了绑定数据库(第二种应该是你想要的)

持续迭代 | 园豆:202 (菜鸟二级) | 2022-06-08 16:52

呢应该咋写? 写一个onclick,触发点击事件,然后调用ajax同步数据库状态吗?还是怎么办?

支持(0) 反对(0) 简单, | 园豆:37 (初学一级) | 2022-06-08 17:07

@简单,: 你这个需求只是要实现点击后切换状态的话,就不需要监听数据库变化。在onClick事件那里加个if判断读到是打开状态,就设置为关闭;else关闭的话,就设置为打开即可,逻辑里面修改数据库值和UI显示

支持(0) 反对(0) 持续迭代 | 园豆:202 (菜鸟二级) | 2022-06-08 17:14
0

难道是用的VB

mowen285 | 园豆:674 (小虾三级) | 2022-06-08 17:35
0
  1. 后台写一个函数,参数是当前机器的IP地址,返回结果是指定IP的IsStart值;(可以先把这个后台方法写好)
  2. 页面加载进来通过JS的ajax调用1后台方法的IsStart值,去设置按钮的文字;
  3. 点击按钮做2件事情:
    (1) 改变按钮文字;
    (2) 写一个后台更新当前IP的IsStart方法,js的ajax调用后台方法更新.
简单, | 园豆:37 (初学一级) | 2022-06-09 11:28
0

Web程序还是桌面程序??

Web程序实现思路:
1、页面加载时从服务端读取数据库状态,根据数据库状态来设置button对应的状态即可。这个可以理解为初始化;
2、步骤1完成后,在页面上操作button时,button绑定onclick事件,当操作发生时把变更后的状态发到服务器端进行数据库存储(更新),同时button状态发生改变;

桌面程序实现思路:
1、程序运行后依然是初始化时从数据库读取状态值,调整显示即可;
2、窗口中操作了button,根据onclick来更新数据库的值即可。

以上错做即可实现

西越泽 | 园豆:10775 (专家六级) | 2022-06-13 15:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册