Appcan后台数据库表交互,注册

<!DOCTYPE html> <html class="um landscape min-width-240px min-width-320px min-width-480px min-width-768px min-width-1024px"> <head> <title></title> <meta charset="utf-8"> <meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, initial-scale=1, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0"> <link rel="stylesheet" href="css/fonts/font-awesome.min.css"> <link rel="stylesheet" href="css/ui-box.css"> <link rel="stylesheet" href="css/ui-base.css"> <link rel="stylesheet" href="css/ui-color.css"> <link rel="stylesheet" href="css/appcan.icon.css"> <link rel="stylesheet" href="css/appcan.control.css"> <link rel="stylesheet" href="zhuce_content/css/main.css"> </head> <body class="um-vp bc-bg" ontouchstart> <div class="c-wh uinnh5"> <div class="uba uc-a1 bc-border"> <div class="ub uinn5 bc-border ubb"> <div class="ub ub-ac uw-reg ulev-app1"> 登录名称 </div> <div class="ub ub-ac ub-f1"> <div class="uinput ub ub-f1"> <input placeholder="请输入您的登录名" type="text" class="ub-f1" id="loginName"> </div> </div> </div> <div class="ub uinn5 b-d8 ubb"> <div class="ub ub-ac uw-reg ulev-app1" > 设置密码 </div> <div class="ub ub-ac ub-f1"> <div class="uinput ub ub-f1" > <input placeholder="输入6~20位字符" type="password" class="ub-f1" id="password"> </div> </div> </div> <div class="ub uinn5"> <div class="ub ub-ac uw-reg ulev-app1"> 确认密码 </div> <div class="ub ub-ac ub-f1"> <div class="uinput ub ub-f1"> <input placeholder="再次输入设置的密码" type="password" class="ub-f1" id="password_chack"> </div> </div> </div> </div> <div class="ub ub-pe uinn-a6 ulev-4"> <div class="sc-text"> 我同意 </div> <div class="sc-text-active"> 用户服务协议 </div> </div> <div class="uinn-at1"> <div class="btn ub ub-ac bc-text-head ub-pc bc-btn" id="btn2" > 注册 </div> </div> </div> </body> <script src="js/appcan.js"></script> <script src="js/appcan.control.js"></script> <script src="js/appcan.listview.js"></script> <script src="js/main.js"></script> <script src="js/config.js"></script> </body> <script> appcan.ready(function() { appcan.initBounce(); }) appcan.button("#btn2","ani-act",function(){ var loginName = $('#loginName').val(); var password = $('#password').val(); var password_chack=$('#password_chack').val(); if(loginName==""){ $toast("请输入登录名","3000") return; } if(password==""){ $toast("请输入登录密码","3000") return; } if(password!=""&password.length<6){ $toast("密码至少六位","3000") return; } if(password_chack==""){ $toast("请再次输入密码","3000") return; } if(password!=password_chack){ $toast("两次密码不一致","3000") return; } alert(serverURL); alert(loginName+"==="+password) ajax({ url : "userAjax!add_model", data : { name : loginName, password : password }, dataType : "json", successx : function(data) { alert(111); }, error : function(xhr, type) { $toast("网络连接超时", 3500); } }); } ); </script> </html>

//var ip = "192.168.1.102"; //分页初始数据 var pageNo = 1; var pageSize = 8; var serverURL = "http://192.168.1.66:8080/HelloWorld/" function log(info) { console.log(info); if (uexLog) { uexLog.sendLog(info); } } function alertX(content) { appcan.window.alert("提示", content); } function extend(target, source) { for (var p in source) { if (source.hasOwnProperty(p)) { target[p] = source[p]; } } return target; }; function openWin(opt) { var defaultOpt = { name : opt.name, dataType : 0, type : 0, aniId : 2, data : opt.name + ".html", extraInfo : { } }; opt = extend(defaultOpt, opt); log(opt); appcan.window.open(opt); } function closeWin() { appcan.window.close(-1); } function openLoading(info) { var msg = '正在加载...'; if (info) { msg = info; } appcan.window.openToast({ msg : msg, duration : -1, position : 5, type : 1 }); } function closeToast() { appcan.window.closeToast(); } function ajax(opt, loading) { var isload = true; if (loading == 1) { isload = false; } var defaultOpt = { url : "", type : "GET", data : {}, dataType : 'json', timeout : 15000, //超时时间 loading : isload, cache : false, error : function(xhr, type) { closeToast(); alert('Ajax error!'); } }; opt.url = serverURL + opt.url; opt = extend(defaultOpt, opt); log("start request:" + opt.url + "--||--" + opt.type); log("request data:" + JSON.stringify(opt.data)); if (opt.loading) { opt.beforeSend = function(xhr, settings) { openLoading(); }; } if (opt.successx) { opt.success = function(data, status) { closeToast(); if (status != "success") { alert('Server error!'); return; } log(JSON.stringify(data)); opt.successx(data); } } appcan.request.ajax(opt); } function getFormField(selector) { var arr = $(selector).serializeArray(); var param = {}; for (var i = 0; i < arr.length; i++) { var p = arr[i]; param[p.name] = p.value; } return param; } function setWinParam(param) { localStorage.winParam = null; localStorage.winParam = JSON.stringify(param); } function getWinParam() { var p = null; if (localStorage.winParam) { p = JSON.parse(localStorage.winParam); localStorage.winParam = null; } return p; } function setUserId(userId) { localStorage.currentUserId = userId; } function getUserId() { return localStorage.currentUserId; } function setZW(zw) { localStorage.currentZW = zw; } function getZW() { return localStorage.currentZW; } function setReportLvType(type) { localStorage.currentReportLvType = type; } function getReportLvType() { return localStorage.currentReportLvType; } function initBounce(funcTop, funcBottom) { uexWindow.setBounce("1"); if (!funcTop && !funcBottom) { uexWindow.showBounceView("0", "rgba(255,255,255,0)", "0"); uexWindow.showBounceView("1", "rgba(255,255,255,0)", "0"); return; } var top = 0, btm = 1; uexWindow.onBounceStateChange = function(type, state) { if (type == top && state == 2) {//顶部弹动 funcTop(); uexWindow.resetBounceView("0"); } if (type == btm && state == 2) {//底部弹动 funcBottom(); uexWindow.resetBounceView("1"); } } if (funcTop) { uexWindow.setBounceParams('0', "{'pullToReloadText':'下拉刷新','releaseToReloadText':'释放刷新','loadingText':'正在刷新,请稍候'}"); uexWindow.showBounceView(top, "rgba(255,255,255,0)", 1); uexWindow.notifyBounceEvent(top, 1); } if (funcBottom) { uexWindow.setBounceParams('1', "{'pullToReloadText':'加载更多','releaseToReloadText':'加载更多','loadingText':'加载中,请稍候'}"); uexWindow.showBounceView(btm, "rgba(255,255,255,0)", 1); //设置弹动位置及效果([1:显示内容;0:不显示]) uexWindow.notifyBounceEvent(btm, 1); //注册接收弹动事件([0:不接收onBounceStateChange方法回调;1:接收]) } } /** * 获取当前日期 * 格式为:yyyy-MM-dd */ function getNowDate() { var now = new Date(); y = now.getFullYear(); m = now.getMonth() + 1; d = now.getDate(); m = m < 10 ? "0" + m : m; d = d < 10 ? "0" + d : d; return y + "-" + m + "-" + d; } /** * 获取明天日期 * 格式为:yyyy-MM-dd */ function getTomorrowDate() { var nd = new Date(getNowDate()); nd = nd.valueOf(); // nd = nd + 1 * 24 * 60 * 60 * 1000; nd = new Date(nd); var y = nd.getFullYear(); var m = nd.getMonth() + 1; var d = nd.getDate(); if (m <= 9) { m = "0" + m; } if (d <= 9) { d = "0" + d; } return y + "-" + m + "-" + d; } /** * 获取当前日期 * 格式为:HH */ function getNowDateHH() { var now = new Date(); var i = now.getHours(); if (i < 10) { i = "0" + i; } return i; } //监听安卓的返回功能 var closeflag = 0; /** * 拦截物理返回键 * 双击退出程序 */ function doubleExit() { var plat = uexWidgetOne.getPlatform(); if (plat) { uexWindow.onKeyPressed = function(keyCode) { if (keyCode == 0) { if (closeflag == 1) { uexWidgetOne.exit(0); } uexWindow.toast(0, 5, "再次点击退出程序", 2000); closeflag = 1; setTimeout(function() { closeflag = 0; }, 2000); } } uexWindow.setReportKey(0, 1); } } /** * 为页面添加覆盖层 * 防止误操作或重复操作 * @param headId:页面head的id * @param pageId:页面的id */ function open_cover(headId, pageId, popName, popHtml) { headId = '#' + headId; pageId = '#' + pageId; var titHeight = $(headId).offset().height; var page = window.getComputedStyle($(pageId)[0], null); var pagew = parseInt(page.width); var pageh = parseInt(page.height); uexWindow.openPopover(popName, "0", popHtml, "", "0", titHeight, pagew, pageh, "2", "0"); } /** * 关闭pop窗口 * @param popName */ function close_cover(popName) { appcan.closePopover((popName) ? popName : 'coverpop'); } /** *获取上月日期 */ function getLastMonth() { var now = new Date(); y = now.getFullYear(); m = now.getMonth(); if (m == 0) { m = 12; y = y - 1; } m = m < 10 ? "0" + m : m; return y + "年" + m; } /** *解决后台mySql数据库中传来的datetime数据最后以.0结尾的问题 */ function format(datetime) { return datetime.substring(0, datetime.lastIndexOf('.')) } function checkVersion(state) { var versionId = getLocVal('versionId'); if (!versionId) { versionId = 0; } ajax({ url : "appcanAjax/appversion_checkVersion", data : { id : versionId, }, dataType : "json", successx : function(data) { var versionId = data.id; var versionNo = data.versionNo; if (data.state == 1) { uexWindow.cbConfirm = function(opId, dataType, data) { if (data == 1) updateVersion(versionId, versionNo); } uexWindow.confirm('提示', '发现有新的版本,是否立即更新?', ['下次再说', '立即更新']); } else { if (state == 1) { //程序里手动检测版本 $toast('当前为最新版本!', 2000); }else{ setLocVal('versionNo', versionNo); setLocVal('versionId', versionId); } } }, error : function(xhr, type) { //$toast("网络连接超时", 3500); } }, 1); } function updateVersion(versionId, versionNo) { //下载地址 var url = 'http://60.210.98.67:81/baoxiu.apk'; //存储路径 var path = 'wgt://data/down/baoxiu.apk'; uexFileMgr.deleteFileByPath(path); uexDownloaderMgr.createDownloader(1); uexDownloaderMgr.cbCreateDownloader = function(opCode, dataType, data) { switch(dataType) { case 0: alert("uex.cText"); break; case 1: alert("uex.cJson"); break; case 2: if (data == 0) { uexDownloaderMgr.download(1, url, path, '1'); } break; default: alert("error"); } } uexDownloaderMgr.onStatus = function(opCode, fileSize, percent, status) { switch (status) { case 0: $toast("下载进度:" + percent + "%"); break; case 1: $toast("下载完成", 2000); uexDownloaderMgr.closeDownloader(1); setTimeout(function() { uexWidget.installApp(path); setLocVal('versionNo', versionNo); setLocVal('versionId', versionId); }, 2000) break; case 2: $toast("下载失败", 2000); uexDownloaderMgr.closeDownloader(1); break; case 3: $toast("已取消下载", 2000); break; } } } // function findUsreLocation() { // uexLocation.openLocation(); // // // uexLocation.cbOpenLocation = function(opId, dataType, data) { // // alert(opId + "," + dataType + "," + data); // // } // // uexLocation.onChange = function(lat,log) { // // // alert(log+","+lat); // } // }
//注意
要先关闭写入的拦截器
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现