jQuery EasyUI 后台管理界面,无法修改第一条记录

dxy2798 2018-06-26 01:34:50
最近在学习李炎恢老师的jQuery EasyUI视频教程,最后的后台管理页面我跟着敲完了,

但是发现在修改管理员权限或密码时,除非只有一个管理员用户,否则选admin(数据库里id=1)时,实际

总是第二条被修改了,或者说如果有10个用户,修改第一个其实后台拿到的总是最后一个的id,本来以为是自己敲错了代码。

重复敲了2遍,另外在网上找了李炎恢老师的源码还是这个情况,下面是源码的链接:

https://pan.baidu.com/s/1QgmgHOAiT3ahq0SvnBCwWA

不知道是什么原因,本来以为自己都听懂了,但是这个让我很困惑,不清楚是一个bug还是我自己的原因,恳请大家帮忙看看,谢谢!

另:我猜是命名为id的变量和某个地方冲突或者有耦合的情况,但是找好久都看不出来是哪里。。。
...全文
374 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
Logerlink 2018-06-29
  • 打赏
  • 举报
回复
我很抱歉 确实是选择器冲突了

$('input[name="id"]').val()
换成
$('#manager_edit input[name="id"]').val()
dxy2798 2018-06-29
  • 打赏
  • 举报
回复
引用 19 楼 Logerlink 的回复:
我很抱歉 确实是选择器冲突了

$('input[name="id"]').val()
换成
$('#manager_edit input[name="id"]').val()


万分感谢您的帮助,解决了困扰我好久的问题,选择器冲突真是坑人不浅,又学了一招!

也感谢其他几位老师的帮助,非常感谢!
dxy2798 2018-06-28
  • 打赏
  • 举报
回复

刚才错位了

data : {
id : 1,
password : $('input[name="password_edit"]').val(),
auth : $('#auth_edit').combotree('getText'),
},
dxy2798 2018-06-28
  • 打赏
  • 举报
回复
引用 13 楼 Logerlink 的回复:
[quote=引用 12 楼 dxy2798 的回复:]
html里用<input type="text" name="id" class="textbox" style="width:200px;"> ,js里用
id : $('input[id="id"]').val()接收,这样对吗?应该选的元素是对的吧?

不对
id : $('input[name="id"]').val()才是对的[/quote]

对对,我敲错了。按这个改了还是没效果,传到后台的还是1111的id(也就是5),刚才突然想如果我不从前台取值,直接把1也就是admin的id值赋给id会怎么样,结果改成这样:

data : {
id : 1,
//id : $('input[name="id_edit"]').val(),
password : $('input[name="password_edit"]').val(),
auth : $('#auth_edit').combotree('getText'),
},

结果发现传回后台的值还是5,看来不是选择元素的问题了
Logerlink 2018-06-28
  • 打赏
  • 举报
回复
引用 12 楼 dxy2798 的回复:
html里用<input type="text" name="id" class="textbox" style="width:200px;"> ,js里用
id : $('input[id="id"]').val()接收,这样对吗?应该选的元素是对的吧?

不对
id : $('input[name="id"]').val()才是对的
dxy2798 2018-06-28
  • 打赏
  • 举报
回复
换了ie,清理完运行,还是照旧,呵呵,无奈了。
dxy2798 2018-06-28
  • 打赏
  • 举报
回复
引用 16 楼 ambit_tsai 的回复:
结果发现传回后台的值还是5,看来不是选择元素的问题了

难道是缓存?
或者是有地方写错了,程序执行的根本不是这句代码?[/quote]

这个真是伤脑筋呀,https://pan.baidu.com/s/1oBtVTViYMZlJI7N5uny1kg 这个是网上找的李炎恢本人的教材源码,我

把自己敲的代码都删了,把这个拷贝进来,还错误的,虽然教程都看懂了,但是如果不弄清楚这个错误是怎么发生的,心里总是不踏实。
ambit_tsai-微信 2018-06-28
  • 打赏
  • 举报
回复
引用 14 楼 dxy2798的回复:
[quote=引用 13 楼 Logerlink 的回复:]
[quote=引用 12 楼 dxy2798 的回复:]
html里用<input type="text" name="id" class="textbox" style="width:200px;"> ,js里用
id : $('input[id="id"]').val()接收,这样对吗?应该选的元素是对的吧?

不对
id : $('input[name="id"]').val()才是对的[/quote]

对对,我敲错了。按这个改了还是没效果,传到后台的还是1111的id(也就是5),刚才突然想如果我不从前台取值,直接把1也就是admin的id值赋给id会怎么样,结果改成这样:

data : {
id : 1,
//id : $('input[name="id_edit"]').val(),
password : $('input[name="password_edit"]').val(),
auth : $('#auth_edit').combotree('getText'),
},

结果发现传回后台的值还是5,看来不是选择元素的问题了[/quote] 难道是缓存? 或者是有地方写错了,程序执行的根本不是这句代码?
dxy2798 2018-06-27
  • 打赏
  • 举报
回复
引用 5 楼 dxy2798 的回复:
[quote=引用 4 楼 ambit_tsai 的回复:]
还没空看你html文件这么写的。
话说,为什么不用id去获取元素,而用name呢?


修改了还是不行,我截了个图:1、是可以获得要修改的用户信息,现在要修改的事admin,他的id是1;
2、到提交到updateManager.php时,就变成了要修改的id是5了,这个就不是admin而是1111了,所以出错。

另外,我发现总是数据库里最后的一个id,也就是id最大的被修改,取到的id是正确的,怎么提交就错了呢?

我已经把修改框改为用id获取,名字是id_edit

data : {
id : $('#id_edit').val(),
//console.log(id),
password : $('input[name="password_edit"]').val(),
auth : $('#auth_edit').combotree('getText'),
},
dxy2798 2018-06-27
  • 打赏
  • 举报
回复
引用 4 楼 ambit_tsai 的回复:
还没空看你html文件这么写的。
话说,为什么不用id去获取元素,而用name呢?


视频上是这么写的,因为演示时候只修改了数据库中id为2的那条,所以没出现这样的问题。

我试试改成id获取看有没有改善。谢谢有空时帮我也看看代码
ambit_tsai-微信 2018-06-27
  • 打赏
  • 举报
回复
引用 3 楼 dxy2798的回复:
输出是错的,这就是我不明白的地方。前面的代码拿到的值都对,尤其是点修改后得到了正确的值,而提交修改的代码几乎一模一样,就错了,真奇怪
还没空看你html文件这么写的。 话说,为什么不用id去获取元素,而用name呢?
dxy2798 2018-06-27
  • 打赏
  • 举报
回复
html里用<input type="text" name="id" class="textbox" style="width:200px;"> ,js里用
id : $('input[id="id"]').val()接收,这样对吗?应该选的元素是对的吧?
Logerlink 2018-06-27
  • 打赏
  • 举报
回复
引用 10 楼 dxy2798 的回复:
那个_DXY是我改的,因为我怀疑是name=“id”和其他的命名冲突了,最后传的这个是李炎恢的代码,您是用wamp吗?要是的话拷到www文件夹下面,就能运行,麻烦再看看,谢谢!

https://pan.baidu.com/s/1oBtVTViYMZlJI7N5uny1kg

那你有没有试过我说的呢?
整个文件就只有他是name="id" 怎么会冲突呢?
还是说你修改的html文件已经将name="id"一同覆盖了?
如果不是的话 html里面是name="id" js选择也要是name="id"才能选择的
dxy2798 2018-06-27
  • 打赏
  • 举报
回复
引用 9 楼 Logerlink 的回复:
我没跑起来 不过应该是选择元素的时候选错了 将"_DXY"删除试试看


那个_DXY是我改的,因为我怀疑是name=“id”和其他的命名冲突了,最后传的这个是李炎恢的代码,您是用wamp吗?要是的话拷到www文件夹下面,就能运行,麻烦再看看,谢谢!

https://pan.baidu.com/s/1oBtVTViYMZlJI7N5uny1kg
Logerlink 2018-06-27
  • 打赏
  • 举报
回复
我没跑起来 不过应该是选择元素的时候选错了 将"_DXY"删除试试看
dxy2798 2018-06-27
  • 打赏
  • 举报
回复
引用 7 楼 Logerlink 的回复:
所以 你的源码发出来 还带压缩密码的
这怎么解决?


抱歉,可能分享时候选错了,请点下面这个,谢谢!

https://pan.baidu.com/s/1oBtVTViYMZlJI7N5uny1kg
Logerlink 2018-06-27
  • 打赏
  • 举报
回复
所以 你的源码发出来 还带压缩密码的
这怎么解决?
dxy2798 2018-06-26
  • 打赏
  • 举报
回复
输出是错的,这就是我不明白的地方。前面的代码拿到的值都对,尤其是点修改后得到了正确的值,而提交修改的代码几乎一模一样,就错了,真奇怪
ambit_tsai-微信 2018-06-26
  • 打赏
  • 举报
回复
话说,id取的值对不对,没输出看一下吗?

$('input[name="id_DXY"]').val()
dxy2798 2018-06-26
  • 打赏
  • 举报
回复
添加一个新用户如:1111,分配权限,OK;
修改1111的初始密码,OK;
修改1111的权限,OK;
此时修改admin的权限,提示修改成功,但发现修改的成了1111的权限了。这就是我的问题。
郑重声明:本文分享系统来自互联网,分享目的在于传递更多信息,帮助大家,并不代表本人赞同其观点和 对其真实性负责。如涉及作品内容、版权和其它问题,请在七日内与本人联系,我将在第一时间删除内容! [声明]本站文章版权归原作者所有,内容为作者个人观点,本人只提供参考并不构成任何投资及应用建议。 本人拥有对此声明的最终解释权。 系统完全开源, 系统包含如下: 登陆,注销,修改 系统管理:菜单管理,操作员管理,角色管理,操作员授权。 站点管理:站点信息管理,站点类型。 由于密码是涉及加密,请勿在数据库中任意修改密码 简要说明 使用Java平台,采用SpringMVC+Mybatis等主流框架 数据库:使用免费MYSQL 前端:使用JqueryEasyui技术.界面清晰简洁,易操作. 权限:对菜单,按钮控制.仅展示有权限的菜单和按钮. 拦截:对所有无权限URL进行拦截,防止手动发送HTTP请求,确保系统全性. 代码生成:根据表生成对应的Bean,Service,Mapper,Action,XML等。提高开发效率. 项目说明: 用户名:admin 密 码:为大家方便,我已把密码放到登陆页,无需输入密码即可登陆 运行环境: 硬件平台: CPU:酷睿II。 内存:1GB以上。 软件平台: 操作系统:Windows。 数据库:MySQL。 编程平台:eclipse 浏览器:IE Web服务器:tomcat 分辨率:最佳效果1024×768像素。
1.1、课程的背景 该课程是北风品牌课程-《BF-TECH J2EE软件工程师就业课程》 第五阶段:项目实战一、开发基于SSH2+Maven+JeasyUI+MySQL技术的 【易买网电子商务交易平台】课程。 jQuery EasyUI简称jeasyui,也就叫easyui,是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的javascript,也不需要对css样式有深入的了解,开发者需要了解的只有一些简单的html标签。现在几乎只要软件开发项目,越来越多的公司采用富客户端技术,由于extjs过于宠大,及学习成本较高,更多的企业选择采用小巧而易用的jeasyui作为前端展示框架。 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外,还提供 Ant 所缺少的高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目,而使用 Ant 则需要十几行。事实上,由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。 1.2、课程内容简介 由于富客户端技术进一步扩展浏览器功能,使之提供更加高效和友好的用户接口,越来越多的企业和开发人员选择使用富客户端技术构建商业应用,本课程主要是介绍了解最流行的富客户端框架jquery - easyUI API及熟悉掌握其高级特性,并结合SSH2框架与Maven实现富户端商业应用的全部开发过程. 2.2、课程学习目标(我们提供什么?) 目标一. 了解Maven的环境配置以及如何在项目中进行运用管理 目标二. 了解java框架技术,熟悉SSH框架搭建的全过程 目标三. 可以让学员迅速掌握JEasyUI的API及使用技巧 目标四. 可以让学员熟练使用JEasyUI快速构通富客户端的界面及与后台服务器交互的注意事项与技巧 目标五. 通过前台和后台的分离,让学生即掌握JSP使用技巧又熟练JEasyUI的使用 目标六. 通过完整的项目实战,全面的演示了JEasyui+SSH2+Maven+MySQL技术的综合使用步骤、过程、注意事项及技巧 目标七. 通过本课程的学习,为学员以后开发使用JEasyui与后台Java框架技术结合的大型Java项目提供了完整示范,奠定基础 2.3、课程特色 特点一、讲师具有一线的实战经验与丰富的教学经验,课程即讲解案例实现思路、理论与原理又讲解实战技巧与注意事项,即照顾到基顾学员,又照顾到有一定实战经验想要提高自己的学员。 特点二、在每节开始之前先简单回顾上一节所讲的主要内容,并对本节所讲的内容先进行概述,讲解概念、技术要点,设计实现思路等内容,最后总结本次课程的要掌握的要点,讲师授课采用先理论,后实战的方式,由浅入深,符合人们接受知识的自然规律。 特点三、学习的过程中学员要理论和实践相结合,讲过的代码学员自行完成修改和调试,以巩固加深学习效果 2.4、课程亮点 亮点一、Structs2.x+Spring3.x+Hibernate4.x+ JEasyui1.3.4+Maven3 各框架jar包等采用的均是目前为止最新的版本,讲解时使用的这些jar及框架的最新技术,如此组合在国内尚属首部、技术的前沿性可以保证让您的技术在二到三年内不会落伍. 亮点二、理论与实战相结合,由浅入深。即照顾到基础学员,又照顾到有一定经验的学员,讲解过程中留有学生思考的时间. 亮点三、课程绝大多数代码均是一行一行手工敲入,手把手一步步带领学员从入门到精通. 亮点四、整个课程虽项目不大,但整个项目基本上涉及到JEasyui与后台交互的方方面面,而且讲师框架全部按大的项目架构去搭建的,学员拿到该项目后稍加改造就可以用到自己的项目,实用性超强.
用到的技术亮点: 前端用到了easyUI EasyuijQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的javascript,也不需要对css样式有深入的了解,开发者需要了解的只有一些简单的html标签。 jQuery EasyUI为提供了大多数UI控件的使用,如:accordion,combobox,menu,dialog,tabs,validatebox,datagrid,window,tree等等。 jQuery EasyUI是基于JQuery的一个前台ui界面的插件,功能相对没extjs强大,但页面也是相当好看的,同时页面支持各种themes以满足使用者对于页面不同风格的喜好。一些功能也足够开发者使用,相对于extjs更轻量。 jQuery EasyUI有以下特点: 1、基于jquery用户界面插件的集合 2、为一些当前用于交互的js应用提供必要的功能 3、EasyUI支持两种渲染方式分别为javascript方式(如:$('#p').panel({...}))和html标记方式(如:class="easyui-panel") 4、支持HTML5(通过data-options属性) 5、开发产品时可节省时间和资源 6、简单,但很强大 7、支持扩展,可根据自己的需求扩展控件 8、目前各项不足正以版本递增的方式不断完善 jQuery EasyUI 提供了用于创建跨浏览器网页的完整的组件集合,包括功能强大的 datagrid(数据网格)、treegrid(树形表格)、 panel(面板)、combo(下拉组合)等等。 用户可以组合使用这些组件,也可以单独使用其中一个。 插件列表如下:(主要用到了以下插件) 系统主要运用在:在系统的关于订单管理和用户管理页面都使用的是此框架。主要用到的是 datagrid(数据网格)这个插件。以上有操作文档 前端用到了jQuery jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是"write Less,Do More",即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。 jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。 系统主要运用在:在系统中一些分页或者样式交互事件处理中使用到了(比如地址选择框) 前端用到了ajax AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 AJAX = 异步 JavaScript和XML(标准通用标记语言的子集)。 AJAX 是一种用于创建快速动态网页的技术。 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。 系统主要运用在:主要运用于系统的表单验证比如登录注册验证码以及一些需要不刷新页面的异步提交页面(在车票查询,登录注册表单验证页面使用到了,还有是一些删除操作也使用到了) 前端页面使用的jsp(Java服务端网页(一种建立动态网页的技术,Java Server Page)) JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。 系统主要运用在:本系统前端页面关于与后台交互的全部使用的jsp 后端使用的MVC三层架构模式 三层架构(3-tier ar

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧