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的变量和某个地方冲突或者有耦合的情况,但是找好久都看不出来是哪里。。。
...全文
379 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的权限了。这就是我的问题。

87,955

社区成员

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

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